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

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

在 Ray 任務中使用任務參數

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

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

例如,下列是執行使用 --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 中的 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 任務提供檔案