

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

# 在 中使用 Ray 任務 AWS Glue
<a name="ray-jobs-section"></a>

**重要**  
AWS Glue for Ray 自 2026 年 4 月 30 日起不再向新客戶開放。如果您想要使用 AWS Glue for Ray，請在該日期之前註冊。現有客戶可以繼續正常使用該服務。如需類似 AWS Glue for Ray 的 功能，請探索 Amazon EKS。如需詳細資訊，請參閱 [AWS Glue 的 Ray 終止支援](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)。

本節提供使用 AWS Glue for Ray 任務的相關資訊。如需撰寫 AWS Glue Ray 指令碼的詳細資訊，請參閱 [Ray 指令碼程式設計](aws-glue-programming-ray.md)一節。

**Topics**
+ [for Ray AWS Glue 入門](#author-job-ray-using)
+ [支援的 Ray 執行期環境](#author-job-ray-runtimes)
+ [計算 Ray 任務中的工作者](#author-job-ray-worker-accounting)
+ [在 Ray 任務中使用任務參數](author-job-ray-job-parameters.md)
+ [使用指標監控 Ray 任務](author-job-ray-monitor.md)

## for Ray AWS Glue 入門
<a name="author-job-ray-using"></a>

若要使用 AWS Glue for Ray，您可以使用與 AWS Glue for Spark. AWS Glue jobs 搭配使用的相同 AWS Glue 任務和互動式工作階段，旨在定期執行相同的指令碼，而互動式工作階段旨在讓您針對相同的佈建資源循序執行程式碼片段。

AWS Glue ETL 和 Ray 在下方不同，因此在指令碼中，您可以存取不同的工具、功能和組態。作為由 管理的新運算架構 AWS Glue，Ray 具有不同的架構，並使用不同的詞彙來描述其功能。如需詳細資訊，請參閱 Ray 文件中的 [Architecture Whitepapers](https://docs.ray.io/en/latest/ray-contribute/whitepaper.html) (架構白皮書)。

**注意**  
AWS Glue for Ray 在美國東部 （維吉尼亞北部）、美國東部 （俄亥俄）、美國西部 （奧勒岡）、亞太區域 （東京） 和歐洲 （愛爾蘭） 提供。

### AWS Glue Studio 主控台中的 Ray 任務
<a name="author-job-ray-using-console"></a>

在 AWS Glue Studio 主控台的任務****頁面上，您可以在 AWS Glue Studio-**Ray 指令碼編輯器**中建立任務時選取新選項。選擇此選項可在主控台中建立 Ray 任務。如需有關這些任務及其使用方式的詳細資訊，請參閱 [建置視覺化的 ETL 任務](author-job-glue.md)。

![\[選取 Ray 指令碼編輯器選項時， 中的任務頁面。 AWS Glue Studio\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/ray_job_setup.png)


### AWS CLI 和 SDK 中的 Ray 任務
<a name="author-job-ray-using-cli"></a>

中的 Ray 任務 AWS CLI 使用與其他 任務相同的 SDK 動作和參數。 AWS Glue for Ray 為特定參數引入新值。如需有關任務 API 的詳細資訊，請參閱 [任務](aws-glue-api-jobs-job.md)。

## 支援的 Ray 執行期環境
<a name="author-job-ray-runtimes"></a>

在 Spark 任務中，`GlueVersion` 會決定在 AWS Glue for Spark 任務中可用的 Apache Spark 和 Python 的版本。Python 版本指示針對 Spark 類型任務支援的版本。這不是 Ray 執行期環境的設定方式。

針對 Ray 任務，您應將 `GlueVersion` 設定為 `4.0` (或更高版本)。不過，Ray 任務中可用的 Ray、Python 和其他程式庫的版本由任務定義中的 `Runtime` 欄位決定。

`Ray2.4` 執行期環境將在發布後至少可用 6 個月。隨著 Ray 的快速發展，您將能夠透過未來的執行期環境發行版本合併 Ray 更新和改進。

有效值：`Ray2.4`


| 執行期值 | Ray 和 Python 版本 | 
| --- | --- | 
| Ray2.4 (適用於 AWS Glue 4.0\$1) |  Ray 2.4.0 Python 3.9  | 

**其他資訊**
+ 如需 Ray 版本 AWS Glue 隨附的版本備註，請參閱 [AWS Glue 版本](release-notes.md#release-notes-versions)。
+ 如需在執行期環境中提供的 Python 程式庫，請參閱 [Ray 任務隨附的模組](edit-script-ray-env-dependencies.md#edit-script-ray-modules-provided)。

## 計算 Ray 任務中的工作者
<a name="author-job-ray-worker-accounting"></a>

AWS Glue 在新的 Graviton 型 EC2 工作者類型上執行 Ray 任務，僅適用於 Ray 任務。為了適當地為工作負載 (專門為其設計了 Ray) 佈建這些工作者，我們提供了與大多數工作者不同的運算資源與記憶體資源比率。為了計算這些資源，我們使用記憶體最佳化資料處理單元 (M-DPU)，而不是標準資料處理單元 (DPU)。
+ 一個 M-DPU 對應 4 個 vCPU 和 32 GB 記憶體。
+ 一個 DPU 對應 4 個 vCPU 和 16 GB 記憶體。DPU 用於透過 Spark 任務和對應的工作者來計算 AWS Glue 中的資源。

Ray 任務目前擁有一種工作者類型 (即 `Z.2X`) 的存取權。`Z.2X` 工作者映射至 2 個 M-DPU (8 個 vCPU、64 GB 記憶體)，且擁有 128 GB 的磁碟空間。`Z.2X` 機器提供 8 個 Ray 工作者 (每個 vCPU 一個)。

您可以在帳戶中同時使用的 M-DPU 數量取決於服務配額。如需 AWS Glue 帳戶限制的詳細資訊，請參閱[AWS Glue 端點和配額](https://docs.aws.amazon.com/general/latest/gr/glue.html)。

您可以在任務定義中使用 `--number-of-workers (NumberOfWorkers)` 指定可用於 Ray 任務的工作節點數量。如需有關任務 API 中 Ray 值的詳細資訊，請參閱 [任務](aws-glue-api-jobs-job.md)。

您可以進一步指定 Ray 任務必須與 `--min-workers` 任務參數一起配置的工作者數量下限。如需有關任務參數的詳細資訊，請參閱 [參考資料](author-job-ray-job-parameters.md#author-job-ray-parameters-reference)。

# 在 Ray 任務中使用任務參數
<a name="author-job-ray-job-parameters"></a>

**重要**  
AWS Glue for Ray 自 2026 年 4 月 30 日起不再向新客戶開放。如果您想要使用 AWS Glue for Ray，請在該日期之前註冊。現有客戶可以繼續正常使用該服務。如需類似 AWS Glue for Ray 的 功能，請探索 Amazon EKS。如需詳細資訊，請參閱 [AWS Glue 的 Ray 終止支援](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)。

您為 Ray AWS Glue 任務設定引數的方式與 AWS Glue 為 Spark 任務設定引數的方式相同。如需 AWS Glue API 的詳細資訊，請參閱 [任務](aws-glue-api-jobs-job.md)。您可以使用此參考中列出的不同引數來設定 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 任務中存取任務參數。這可為您提供為每個執行設定任務的方法。環境變數的名稱將是不含 `--` 字首的任務引數名稱。

例如，在之前的範例中，變數名稱將是 `scriptLocation` 和 `test-environment`。然後，您需透過標準程式庫中可用的方法擷取引數：`test_environment = os.environ.get('test-environment')`。如需有關使用 Python 存取環境變數的詳細資訊，請參閱 Python 文件中的 [os module](https://docs.python.org/3/library/os.html)。

## 設定 Ray 任務產生日誌的方式
<a name="author-job-ray-logging-configuration"></a>

依預設，Ray 任務產生的日誌和指標會傳送到 CloudWatch 和 Amazon S3。您可以使用 `--logging_configuration` 參數來變更日誌的產生方式，目前您可以使用此參數來讓 Ray 任務停止產生各種類型的日誌。此參數採用 JSON 物件，其金鑰對應至您想要變更的日誌/行為。此參數支援下列金鑰：
+ `CLOUDWATCH_METRICS` – 設定可用於將任務運作狀態視覺化的 CloudWatch 指標系列。如需指標的詳細資訊，請參閱 [使用指標監控 Ray 任務](author-job-ray-monitor.md)。
+ `CLOUDWATCH_LOGS` – 設定 CloudWatch 日誌，以提供有關任務執行狀態的 Ray 應用程式層級詳細資訊。如需日誌的詳細資訊，請參閱 [對日誌 AWS Glue 中的 Ray 錯誤進行故障診斷](troubleshooting-ray.md)。
+ `S3` – 設定 AWS Glue 寫入 Amazon S3 的內容，主要與 CloudWatch 日誌類似，但做為檔案而非日誌串流。

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

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

## 參考資料
<a name="author-job-ray-parameters-reference"></a>

 Ray 任務會辨識以下引數名稱，您可以用來為 Ray 任務和任務執行設定指令碼環境：
+ `--logging_configuration` – 用於停止產生 Ray 任務建立的各種日誌。依預設，這些日誌會在所有 Ray 任務上產生。格式：逸出字串 JSON 物件。如需詳細資訊，請參閱[設定 Ray 任務產生日誌的方式](#author-job-ray-logging-configuration)。
+ `--min-workers` – 配置給 Ray 任務的工作節點最小數目。工作節點可以執行多個複本，每個虛擬 CPU 一個複本。格式：整數。下限：0。上限：在任務定義的 `--number-of-workers (NumberOfWorkers)` 中指定的值。如需有關計算工作節點的詳細資訊，請參閱 [計算 Ray 任務中的工作者](ray-jobs-section.md#author-job-ray-worker-accounting)。
+ `--object_spilling_config` – AWS Glue for Ray 支援使用 Amazon S3 作為擴展 Ray 物件存放區可用空間的方式。若要啟用此行為，您可以使用此參數提供 Ray 一個*物件溢出*的 JSON 組態物件。如需有關 Ray 物件溢出組態的詳細資訊，請參閱 Ray 文件中的 [Object Spilling](https://docs.ray.io/en/latest/ray-core/objects/object-spilling.html)。格式：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](https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html) (Plasma 記憶體內物件存放區)。
+ `--object_store_memory_worker` – 配置給 Ray 工作節點上 Plasma 物件存放區的記憶體。這些執行個體僅執行工作者複本。此值代表暖啟動後執行個體上可用記憶體的百分比。此參數用於調整記憶體密集型工作負載 – 大多數使用案例都可以接受預設值。格式：正整數。下限：1。上限：100。

  如需有關 Plasma 的詳細資訊，請參閱 Ray 文件中的 [The Plasma In-Memory Object Store](https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html) (Plasma 記憶體內物件存放區)。
+ `--pip-install` – 要安裝的一組 Python 套件。您可以使用此引數從 PyPI 安裝套件。格式：以逗號分隔的清單。

  PyPI 套件項目的格式為 `package==version`，其中包含 PyPI 名稱和目標套件的版本。項目使用 Python 版本比對來比對套件和版本。例如 `==`，而非單一等於 `=`。也存在其他的版本比對運算子。如需詳細資訊，請參閱 Python 網站上的 [PEP 440](https://peps.python.org/pep-0440/#version-matching)。您還可以使用 `--s3-py-modules` 提供自訂模組。
+ `--s3-py-modules`：託管 Python 模組分佈的一組 Amazon S3 路徑。格式：以逗號分隔的清單。

  您可以使用它來分發自己的模組到 Ray 任務。您還可以使用 `--pip-install` 提供來自 PyPI 的模組。與 AWS Glue ETL 不同，自訂模組不是透過 pip 設定，而是傳遞給 Ray 進行分發。如需詳細資訊，請參閱[Ray 任務的其他 Python 模組](edit-script-ray-env-dependencies.md#edit-script-ray-python-libraries-additional)。
+ `--working-dir`：Amazon S3 中託管之 .zip 檔案的路徑，其中包含要分發到執行 Ray 任務的所有節點的檔案。格式：字串。如需詳細資訊，請參閱[為 Ray 任務提供檔案](edit-script-ray-env-dependencies.md#edit-script-ray-working-directory)。

# 使用指標監控 Ray 任務
<a name="author-job-ray-monitor"></a>

**重要**  
AWS Glue for Ray 自 2026 年 4 月 30 日起不再向新客戶開放。如果您想要使用 AWS Glue for Ray，請在該日期之前註冊。現有客戶可以繼續正常使用該服務。如需類似 AWS Glue for Ray 的 功能，請探索 Amazon EKS。如需詳細資訊，請參閱 [AWS Glue 的 Ray 終止支援](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)。

您可以使用 AWS Glue Studio 和 Amazon CloudWatch 監控 Ray 任務。CloudWatch AWS Glue 會使用 Ray 收集和處理來自 的原始指標，以便進行分析。這些指標會在 AWS Glue Studio 主控台中視覺化，讓您可以在任務執行時監控任務。

如需如何監控 的一般概觀 AWS Glue，請參閱 [使用 Amazon CloudWatch 指標監控 AWS Glue](monitoring-awsglue-with-cloudwatch-metrics.md)。如需如何使用由 發佈之 CloudWatch 指標的一般概觀 AWS Glue，請參閱 [使用 Amazon CloudWatch 監控](monitor-cloudwatch.md)。

## 在 AWS Glue 主控台中監控 Ray 任務
<a name="author-job-ray-monitor-console"></a>

在任務執行的詳細資訊頁面的**執行詳細資訊**區段下方，您可以檢視預先建置的彙總圖表，以視覺化可用的任務指標。 會針對每個任務執行，將任務指標 AWS Glue Studio 傳送至 CloudWatch。您可以使用這些任務指標建立叢集和工作的設定檔，以及存取有關每個節點的詳細資訊。

如需有關可用指標圖表的詳細資訊，請參閱 [檢視 Ray 任務執行的 Amazon CloudWatch 指標](view-job-runs.md#monitoring-job-run-metrics-ray)。

## CloudWatch 中的 Ray 任務指標概觀
<a name="author-job-ray-monitor-cw"></a>

在 CloudWatch 中啟用詳細監控功能時，我們會發佈 Ray 指標。指標會發佈至 `Glue/Ray` CloudWatch 命名空間。
+ **執行個體指標**

  我們會針對指派給任務的執行個體，發佈 CPU、記憶體和磁碟使用率的指標。這些指標會由 `ExecutorId`、`ExecutorType` 和 `host` 等特性識別。這些指標是標準 Linux CloudWatch 代理程式指標的子集。您可以在 CloudWatch 文件中找到指標名稱和特性的相關資訊。如需詳細資訊，請參閱 [CloudWatch 代理程式收集的指標](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html)。
+ **Ray 叢集指標**

  我們會將執行指令碼的 Ray 程序中的指標轉送至此命名空間，然後提供對您而言最重要的指標。可用的指標可能因 Ray 版本而異。如需有關任務正在執行之 Ray 版本的詳細資訊，請參閱 [AWS Glue 版本](release-notes.md)。

  Ray 會在執行個體層級收集指標。它還提供了任務和叢集的指標。如需有關 Ray 基礎指標策略的詳細資訊，請參閱 Ray 文件中的[指標](https://docs.ray.io/en/latest/ray-observability/ray-metrics.html#system-metrics)。

**注意**  
 我們不會將 Ray 指標發佈至僅用於 AWS Glue ETL 任務的 `Glue/Job Metrics/` 命名空間。