Ray クラスターは、 EMR Serverless Spark ワークスペースが提供する分散コンピューティングフレームワークです。このトピックでは、 Ray クラスターの作成、起動、操作する方法 (過去のクラスターインスタンスの表示、ワーカーノードグループの編集、クラスターメトリクスの SLS への送信など) について説明します。
Ray クラスターの作成
EMR Serverless Spark コンソールにログインし、対象のワークスペースに移動します。
左側メニューで [Cluster Management] をクリックし、 [Ray clusters] タブをクリックします。
[Create Ray cluster] をクリックします。表示されたパネルで、以下のパラメーターを設定し、 [Create] をクリックします。
[クラスター名]:クラスターの名前を入力します。
[エンジンバージョン]:エンジンバージョンを選択します。現在のデフォルトは
err-1.0.1 (Ray 2.4.1, Python 3.12)です。[ノードグループ]: CPU と GPU リソースを組み合わせて使用する必要がある場合は、 CPU と GPU のノードグループを個別に作成できます。[+ Add worker node group] をクリックし、以下のパラメーターを設定します。
[ノードグループ名]:ノードグループの一意の名前を入力します。
[リソースキュー]:リソースキューを選択します。
[リソース仕様]:ノードのリソース仕様を選択します。
[ノード数]:ワーカーノードの数を設定します。
ノードグループの右側にある展開アイコンをクリックして、オプションの高度な設定を行います。
[フォールトトレランスの有効化] (ヘッドノードグループのみ) :外部の Redis サービスが必要です。ヘッドノードが予期せずクラッシュした場合、クラスターはヘッドプロセスを再起動し、以前の状態を復元します。
[カスタムイメージバージョン]:異なるノードグループで異なるエンジンバージョンを使用できますが、すべてのノードグループで Ray エンジンのバージョンは同じである必要があります。そうでない場合、クラスターは起動に失敗します。設定しない場合、 Ray クラスターで選択したエンジンバージョンが使用されます。
[環境変数]:ノードのカスタム環境変数です。1 行に 1 つ、
key1=value1の形式で記述します。[起動パラメーター]:ノードのカスタム起動パラメーターです。スペースで区切ります (例:
--num-cpus=0) 。
(オプション) ネットワーク接続: Ray クラスターから同じ VPC 内のサービスにアクセスする必要がある場合は、既存のネットワーク接続を選択します。
(オプション) マネージドファイルディレクトリのマウント:既存のマネージドファイルディレクトリを選択すると、 Ray ジョブがそのディレクトリ内のファイルを読み書きできるようになります。マウントは一般的なデータアクセス方法であり、 CPFS、 NAS、 OSS からのパスをローカルディレクトリにマッピングし、プログラムがローカルパスを使用してデータにアクセスできるようにします。新しいマネージドファイルディレクトリを作成するには、「マネージドファイルディレクトリの管理」をご参照ください。
(オプション) クラスターの高度な設定: JSON 形式で高度なパラメーターを設定します。詳細については、「クラスターの高度な設定」をご参照ください。
現在、コンソールではワーカーノードの自動スケーリング設定はサポートされていません。この機能を設定するには、 API を使用します。詳細については、「CreateRayCluster」をご参照ください。
Ray クラスターのヘッドノードは、デフォルトではタスクをスケジューリングしません。ヘッドノードがタスクをスケジューリングできるようにするには、ヘッドノードグループの起動パラメーターに
--num-cpus=<number of CPU cores of the head node>を指定します。
Ray クラスターの起動
Ray クラスターのリストで対象のクラスターを見つけ、 [Start] をクリックします。
クラスターのステータスが [running] に変わるまで待ちます。
説明ワークスペースで初めて Ray クラスターを起動すると、追加のコンポーネントが作成されるため、 2~3 分かかる場合があります。2 回目以降の起動は大幅に高速化されます。
クラスターが起動したら、 [呼び出し情報] をクリックして、 Ray ジョブの投入に必要なエンドポイントアドレスとトークンを表示します。
警告現在のバージョンでは、 Ray クラスターのトークンは有効期限がありません。不正アクセスを防ぐため、トークンは安全に保管してください。
[ダッシュボード] をクリックして Ray クラスターのダッシュボードを開き、クラスターのリソース使用状況を表示できます。
過去のクラスターインスタンスの表示
Ray クラスターが停止した後も、過去のインスタンス情報を利用できます。クラスターの詳細ページで、 [Overview] タブにある過去のクラスターインスタンスリストには、各インスタンスのインスタンス ID、ステータス、開始時刻、停止時刻が表示されます。
インスタンスの [Actions] 列にある [Details] をクリックするとその詳細が表示され、 [ダッシュボード] をクリックするとそのインスタンスの Ray ダッシュボードが開き、クラスター停止前に生成されたデータが表示されます。
ワーカーノードグループの動的編集
Ray クラスターの実行中に、ワーカーノードグループを編集できます。
ワーカーノードグループの追加と削除。
既存のワーカーノードグループの最大および最小レプリカ数の変更。
SLS への Ray クラスターメトリクスの送信
Ray クラスターは、監視のためにそのメトリクスを Simple Log Service (SLS) に送信できます。開始する前に、 RAM での権限付与とクラスターの高度な設定を完了してください。
RAM 権限の追加:ワークスペースロールに Logstore への書き込み権限を付与します。デフォルトのワークスペースロールは
AliyunEMRSparkJobRunDefaultRoleです。実際のロールについては、ワークスペースの詳細ページをご確認ください。ポリシーの例:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:PostLogStoreLogs" ], "Resource": [ "acs:log:*:*:project/<your-project-name>/logstore/<your-logstore-name>" ] } ] }クラスターの高度な設定: Ray クラスターの作成時に、クラスターの高度な設定に以下の JSON を追加します。
{ "slsProject": "<your-project-name>", "slsLogStore": "<your-logstore-name>" }
クラスターが起動すると、 30 秒ごとに指定された Logstore にメトリクスがプッシュされます。ログトピックは emr-ray です。
SLS コンソールの対応するプロジェクトの [メトリクスエクスプローラー] ページで、 PromQL を使用して Ray クラスターのメトリクスをクエリできます。たとえば、 CPU 使用率をクエリする場合は、次のようになります。
ray_node_cpu_utilization{podName="ray-xxxxx"}デフォルトでは、メトリクスには rayClusterId、 podName、 RayNodeType などのラベルが付与されており、これらを使用して結果をフィルタリングできます。
クラスターの高度な設定
JSON 形式でクラスターの高度な設定を指定します。すべてのパラメーターはオプションです。
パラメーター | 必須 | 説明 |
| オプション | クラスター起動時にヘッドノードとワーカーノードにダウンロードする OSS ファイルを指定します。 OSS および OSS-HDFS パスがサポートされています。複数のパスはコンマ (,) で区切ります。ファイルは各ノードの |
| オプション | ヘッドノードとワーカーノードの Python ベース環境の初期化に使用する |
| オプション | Ray クラスターのメトリクスを指定された SLS プロジェクトに送信します。 |
| オプション | 指定された SLS プロジェクトの Logstore に Ray クラスターのメトリクスを送信します。このパラメーターは |
次のステップ
クラスターが実行状態になったら、タスクを投入できます。
タスクは、インタラクティブ開発、 SDK、またはコマンドラインを使用して投入できます。詳細については、「Ray クラスターの概要」をご参照ください。