在 Ray 任務中使用任務參數 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Ray 任務中使用任務參數

您可以為 AWS Glue Ray 任務設定引數,採用的方式與為 Spark 任務設定 AWS Glue 引數的方式相同。如需 AWS Glue API 的詳細資訊,請參閱任務。您可以使用本參考資料中列出的不同引數來設定 AWS Glue Ray 任務。您也可以提供自己的引數。

您可以透過主控台在 Job Parameters (任務參數) 標題下的 Job details (任務詳細資訊) 索引標籤中設定任務。藉由在任務上設定 DefaultArguments 或在任務執行上設定 Arguments,您也可以透過 AWS CLI 來設定任務。預設引數和任務參數會在多次執行中留在任務內。

例如,下列是執行使用 --arguments 來設定特殊參數之任務的語法。

$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py",--test-environment="true"'

設定引數後,您可以透過環境變數從 Ray 任務中存取任務參數。這可為您提供為每個執行設定任務的方法。環境變數的名稱將是不含 -- 字首的任務引數名稱。

例如,在之前的範例中,變數名稱將是 scriptLocationtest-environment。然後,您需透過標準程式庫中可用的方法擷取引數:test_environment = os.environ.get('test-environment')。如需有關使用 Python 存取環境變數的詳細資訊,請參閱 Python 文件中的 os module

設定 Ray 任務產生日誌的方式

依預設,Ray 任務產生的日誌和指標會傳送到 CloudWatch 和 Amazon S3。您可以使用 --logging_configuration 參數來變更日誌的產生方式,目前您可以使用此參數來讓 Ray 任務停止產生各種類型的日誌。此參數採用 JSON 物件,其金鑰對應至您想要變更的日誌/行為。此參數支援下列金鑰:

  • CLOUDWATCH_METRICS – 設定可用於將任務運作狀態視覺化的 CloudWatch 指標系列。如需指標的詳細資訊,請參閱 使用指標監控 Ray 任務

  • CLOUDWATCH_LOGS – 設定 CloudWatch 日誌,以提供 Ray 有關任務執行狀態的應用程式層級詳細資料。如需日誌的詳細資訊,請參閱 對日誌中的 AWS Glue for Ray 錯誤進行疑難排解

  • S3 – 設定 AWS Glue 寫入 Amazon S3 的內容,主要是與 CloudWatch 日誌類似的資訊,但是以檔案形式而非日誌串流。

若要停用 Ray 日誌行為,請提供值 {\"IS_ENABLED\": \"False\"}。例如,若要停用 CloudWatch 指標和 CloudWatch 日誌,請提供下列設定:

"--logging_configuration": "{\"CLOUDWATCH_METRICS\": {\"IS_ENABLED\": \"False\"}, \"CLOUDWATCH_LOGS\": {\"IS_ENABLED\": \"False\"}}"

參考資料

Ray 任務會辨識以下引數名稱,您可以用來為 Ray 任務和任務執行設定指令碼環境:

  • --logging_configuration – 用於停止產生 Ray 任務建立的各種日誌。依預設,這些日誌會在所有 Ray 任務上產生。格式:逸出字串 JSON 物件。如需更多詳細資訊,請參閱 設定 Ray 任務產生日誌的方式

  • --min-workers – 配置給 Ray 任務的工作節點最小數目。工作節點可以執行多個複本,每個虛擬 CPU 一個複本。格式:整數。下限:0。上限:在任務定義的 --number-of-workers (NumberOfWorkers) 中指定的值。如需有關計算工作節點的詳細資訊,請參閱 計算 Ray 任務中的工作者

  • --object_spilling_config:AWS Glue for Ray 支援使用 Amazon S3 作為擴充 Ray 物件存放區可用空間的一種方式。若要啟用此行為,您可以使用此參數提供 Ray 一個物件溢出的 JSON 組態物件。如需有關 Ray 物件溢出組態的詳細資訊,請參閱 Ray 文件中的 Object Spilling。格式:JSON 物件。

    AWS Glue for Ray 僅支援溢出到磁碟或一次溢出到 Amazon S3。您可以提供多個溢出位置,只要它們遵守此限制即可。溢出到 Amazon S3 時,您還需要為此儲存貯體新增 IAM 許可至任務。

    使用 CLI 將 JSON 物件作為組態提供時,您必須將其作為字串提供,並對 JSON 物件進行字串逸出。例如,溢出到一個 Amazon S3 路徑的字串值如下所示:"{\"type\": \"smart_open\", \"params\": {\"uri\":\"s3path\"}}"。在 AWS Glue Studio 中,將此參數作為 JSON 物件提供,不需要額外的格式化處理。

  • --object_store_memory_head – 配置給 Ray 前端節點上 Plasma 物件存放區的記憶體。此執行個體會執行叢集管理服務以及工作者複本。此值代表暖啟動後執行個體上可用記憶體的百分比。您使用此參數調整記憶體密集型工作負載,大多數使用案例都可以接受預設值。格式:正整數。下限:1。上限:100。

    如需有關 Plasma 的詳細資訊,請參閱 Ray 文件中的 The Plasma In-Memory Object Store (Plasma 記憶體內物件存放區)。

  • --object_store_memory_worker – 配置給 Ray 工作節點上 Plasma 物件存放區的記憶體。這些執行個體僅執行工作者複本。此值代表暖啟動後執行個體上可用記憶體的百分比。此參數用於調整記憶體密集型工作負載 – 大多數使用案例都可以接受預設值。格式:正整數。下限:1。上限:100。

    如需有關 Plasma 的詳細資訊,請參閱 Ray 文件中的 The Plasma In-Memory Object Store (Plasma 記憶體內物件存放區)。

  • --pip-install – 要安裝的一組 Python 套件。您可以使用此引數從 PyPI 安裝套件。格式:以逗號分隔的清單。

    PyPI 套件項目的格式為 package==version,其中包含 PyPI 名稱和目標套件的版本。項目使用 Python 版本比對來比對套件和版本。例如 ==,而非單一等於 =。也存在其他的版本比對運算子。如需詳細資訊,請參閱 Python 網站上的 PEP 440。您還可以使用 --s3-py-modules 提供自訂模組。

  • --s3-py-modules:託管 Python 模組分佈的一組 Amazon S3 路徑。格式:以逗號分隔的清單。

    您可以使用它來分發自己的模組到 Ray 任務。您還可以使用 --pip-install 提供來自 PyPI 的模組。與 AWS Glue ETL 不同,自訂模組的設定不是透過 pip 進行,而是會傳遞給 Ray 進行分發。如需更多詳細資訊,請參閱 Ray 任務的其他 Python 模組

  • --working-dir:Amazon S3 中託管之 .zip 檔案的路徑,其中包含要分發到執行 Ray 任務的所有節點的檔案。格式:字串。如需更多詳細資訊,請參閱 為 Ray 任務提供檔案