すべてのプロダクト
Search
ドキュメントセンター

Lindorm:RAY リソースグループの使用

最終更新日:Mar 31, 2026

RAY リソースグループを使用すると、Lindorm が管理するマネージド Ray クラスター上で分散型データ処理ジョブを実行できます。本ガイドでは、Ray クライアントのセットアップ、ジョブの送信、およびその進行状況のモニタリング手順について説明します。

重要

RAY リソースグループは 招待プレビュー です。アクセスをご希望の場合は、Lindorm テクニカルサポート(DingTalk ID: s0s3eg3)までご連絡ください。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

環境のセットアップ

  1. Lindorm コンソール にログインします。左上隅から、インスタンスがデプロイされているリージョンを選択します。インスタンス一覧 ページで、インスタンス ID をクリックするか、操作 列の 管理 をクリックします。

  2. インスタンス詳細 ページで、構成 セクションに移動し、コンピュートエンジン操作 列から リソースグループ をクリックします。

    image

  3. リソースグループ詳細 ページで、RAY リソースグループの 操作 列にある WebUI にカーソルを合わせると、Ray ダッシュボードの URL が表示されます。例:

    http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/

    この URL を保存してください。ジョブ送信時に RAY_ADDRESS として使用します。

  4. Ray クライアントをインストールします。

    pip3 install ray[default]

    インストールを確認します。

    ray --version

ジョブの送信

ステップ 1:ジョブスクリプトの作成

以下のサンプルスクリプト ray-oss-example.py は、Object Storage Service (OSS) バケットからファイルを読み込み、処理結果を再び OSS にアップロードします。このスクリプトを ray_job_test というディレクトリに保存してください。

import ray
import sys

from ossfs import OSSFileSystem
import tempfile
import ossfs

ray.init()

@ray.remote
def process(oss_key: str, oss_secret: str, filename: str):
    print("Processing %s" % filename)
    fs = oss_filesystem(oss_key, oss_secret)
    # ローカルにダウンロード
    tmp_filename = tempfile.NamedTemporaryFile(delete=False).name
    fs.get_file(filename, tmp_filename)
    print("tmp file name is %s" % tmp_filename)

    with open(tmp_filename, 'rb') as f:
        content = f.read()
        print(content)

    # OSS にアップロード
    result_remote_filename = f"{filename}_result"
    fs.put_file(tmp_filename, result_remote_filename)
    return "success"

def oss_filesystem(oss_key: str, oss_secret: str) -> OSSFileSystem:
    return ossfs.OSSFileSystem(
        endpoint="oss-cn-hangzhou-internal.aliyuncs.com", # OSS エンドポイント
        key=oss_key,
        secret=oss_secret
    )

if __name__ == "__main__":
    if (len(sys.argv) < 2):
        raise ValueError("python %s oss_key oss_secret" % __file__)

    oss_key = sys.argv[1]
    oss_secret = sys.argv[2]
    base = "/test-bucket/test-data/"  # /<bucketname>/path
    fs = oss_filesystem(oss_key, oss_secret)

    files = [item['name'] for item in fs.ls(base) if item['name'] != base]

    for file in files:
        print("Head processing %s" % file)
        result = ray.get(process.remote(oss_key, oss_secret, file))
        print(f"{file} is processed, status is {result}")

ray.shutdown()

スクリプトのパラメーター

パラメーター説明
endpointoss-cn-hangzhou-internal.aliyuncs.comOSS エンドポイントです。詳細については、「リージョンとエンドポイント」をご参照ください。
base/test-bucket/test-data/処理対象の OSS パスです。形式は /<bucketname>/path です。
説明

@ray.remote() アノテーションを使用して、各タスクまたはアクターの計算リソース (例: num_cpusnum_gpus) を宣言します。詳細については、「タスクまたはアクターのリソース要件の指定」をご参照ください。また Ray は、複数のノードにまたがる異種リソース (CPU と GPU) でタスクをパイプラインとしてスケジューリングすることもサポートしており、これにより、従来のバッチ処理と比較してスループットを大幅に向上させることができます。

ステップ 2:ジョブの送信

ray_job_test ディレクトリから、以下のコマンドを実行します。

ray job submit --runtime-env-json '{"working_dir": "."}' --address <RAY_ADDRESS> -- python my_job.py oss_key oss_secret

以下のプレースホルダーを置き換えてください。

プレースホルダー説明
<RAY_ADDRESS>http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/環境のセットアップ で取得した Ray ダッシュボード URL です。
my_job.pyray-oss-example.py実行するスクリプトファイルの名前です。
oss_keyyourAccessKeyIDOSS へのアクセスに使用する Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey ID です。「AccessKey の取得」をご参照ください。
oss_secretyourAccessKeySecretAccessKey ID に対応する AccessKey Secret です。

実行例

ray job submit --runtime-env-json '{"pip": ["ossfs"], "working_dir": "."}' --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ -- python ray-oss-example.py yourAccessKeyID yourAccessKeySecret

コマンド実行後、送信されたジョブの SUBMISSION_ID(例:raysubmit_gmSnPSFqmEXG****)が返されます。この ID を使用して、ジョブのステータス確認、ログの閲覧、またはジョブの停止を行います。

ジョブのモニタリングと管理

ブラウザで Ray ダッシュボード URL を開くと、RAY ダッシュボードを使用して、ジョブのステータス、ジョブログ、ジョブ一覧をリアルタイムでモニタリングできます。

また、Ray ではジョブの表示および管理に以下の 3 つの方法が提供されています。

方法推奨用途
CLIスクリプトおよび自動化
Python SDKアプリケーションコードからのプログラムによるアクセス
REST API任意の環境からの HTTP ベースのアクセス

CLI の使用

Ray は、ジョブを表示および管理するための ray job サブコマンドを提供します。完全なコマンドリファレンスについては、Ray ジョブ CLI API リファレンスをご参照ください。

以下の例では、次の構文を使用します。

ray job <サブコマンド> --address <RAY_ADDRESS> [SUBMISSION_ID]

ジョブのステータス確認

ray job status --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ raysubmit_gmSnPSFqmEXG****

ジョブログの表示

ray job logs --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ raysubmit_gmSnPSFqmEXG****

すべてのジョブの一覧表示

ray job list --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/

ジョブの停止

ray job stop --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ raysubmit_gmSnPSFqmEXG****

Python SDK

Ray は、プログラムによるジョブ管理用に JobSubmissionClient を提供します。詳細については、「Python SDK API リファレンス」をご参照ください。

REST API

Ray は、HTTP ベースのジョブ管理用の REST API を提供します。エントリポイントとして Ray ダッシュボード URL を使用します。詳細については、「Ray ジョブ REST API リファレンス」をご参照ください。