Kelompok sumber daya RAY memungkinkan Anda menjalankan pekerjaan pemrosesan data terdistribusi pada kluster Ray yang dikelola oleh Lindorm. Panduan ini mencakup cara menyiapkan client Ray, mengirim pekerjaan, dan memantau progresnya.
Kelompok sumber daya RAY sedang dalam pratinjau undangan. Untuk meminta akses, hubungi dukungan teknis Lindorm (ID DingTalk: s0s3eg3).
Prasyarat
Sebelum memulai, pastikan Anda telah:
LindormTable diaktifkan
Mesin komputasi untuk Lindorm diaktifkan
Kelompok sumber daya RAY diaktifkan
Alamat IP client ditambahkan ke daftar putih Lindorm
Siapkan lingkungan Anda
Masuk ke Konsol Lindorm. Di pojok kiri atas, pilih wilayah tempat instans berada. Pada halaman Instance List, klik ID instans atau klik Manage di kolom Actions.
Pada halaman Instance Details, buka bagian Configurations, lalu klik Resource Groups di kolom Actions untuk Compute Engine.

Pada halaman Resource Group Details, arahkan kursor ke WebUI di kolom Actions untuk kelompok sumber daya RAY guna mendapatkan URL Dasbor Ray. Contohnya:
http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/Simpan URL ini—Anda akan menggunakannya sebagai
RAY_ADDRESSsaat mengirim pekerjaan.Instal client Ray:
pip3 install ray[default]Verifikasi instalasi:
ray --version
Kirim pekerjaan
Langkah 1: Tulis skrip pekerjaan
Skrip contoh berikut, ray-oss-example.py, membaca file dari bucket Object Storage Service (OSS) dan mengunggah hasil yang telah diproses kembali ke OSS. Simpan skrip tersebut di direktori bernama 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)
# Download to local
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)
# Put to 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", # The OSS endpoint
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()Parameter skrip
| Parameter | Contoh | Deskripsi |
|---|---|---|
endpoint | oss-cn-hangzhou-internal.aliyuncs.com | Titik akhir OSS. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir. |
base | /test-bucket/test-data/ | Jalur OSS yang akan diproses, dalam format /<bucketname>/path. |
Gunakan anotasi @ray.remote() untuk mendeklarasikan sumber daya komputasi untuk setiap Task atau Actor—misalnya, num_cpus dan num_gpus. Lihat Specifying task or actor resource requirements untuk detailnya. Ray juga mendukung penjadwalan tugas sebagai pipeline di berbagai sumber daya heterogen (CPU dan GPU) pada beberapa node, yang secara signifikan dapat meningkatkan throughput dibandingkan dengan pemrosesan batch tradisional.
Langkah 2: Kirim pekerjaan
Dari direktori ray_job_test, jalankan:
ray job submit --runtime-env-json '{"working_dir": "."}' --address <RAY_ADDRESS> -- python my_job.py oss_key oss_secretGanti placeholder berikut:
| Placeholder | Contoh | Deskripsi |
|---|---|---|
<RAY_ADDRESS> | http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ | URL Dasbor Ray yang diperoleh di Siapkan lingkungan Anda. |
my_job.py | ray-oss-example.py | Nama file skrip yang akan dijalankan. |
oss_key | yourAccessKeyID | ID AccessKey dari Akun Alibaba Cloud atau pengguna Resource Access Management (RAM) yang digunakan untuk mengakses OSS. Lihat Obtain an AccessKey. |
oss_secret | yourAccessKeySecret | Rahasia AccessKey yang sesuai dengan ID AccessKey tersebut. |
Contoh perintah
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 yourAccessKeySecretPerintah ini mengembalikan SUBMISSION_ID dari pekerjaan yang dikirim, seperti raysubmit_gmSnPSFqmEXG****. Gunakan ID ini untuk memeriksa status, melihat log, atau menghentikan pekerjaan.
Pantau dan kelola pekerjaan
Buka URL Dasbor Ray di browser untuk memantau status pekerjaan, log pekerjaan, dan daftar pekerjaan secara real time menggunakan Dasbor RAY.
Ray juga menyediakan tiga cara untuk melihat dan mengelola pekerjaan:
| Metode | Paling cocok untuk |
|---|---|
| CLI | Pembuatan skrip dan otomatisasi |
| Python SDK | Akses terprogram dari kode aplikasi |
| REST API | Akses berbasis HTTP dari lingkungan apa pun |
Gunakan CLI
Ray menyediakan subperintah ray job untuk melihat dan mengelola pekerjaan. Lihat Ray Jobs CLI API reference untuk referensi lengkap perintah.
Contoh berikut menggunakan sintaks:
ray job <subcommand> --address <RAY_ADDRESS> [SUBMISSION_ID]Lihat status pekerjaan
ray job status --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ raysubmit_gmSnPSFqmEXG****Lihat log pekerjaan
ray job logs --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ raysubmit_gmSnPSFqmEXG****Daftar semua pekerjaan
ray job list --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/Hentikan pekerjaan
ray job stop --address http://alb-57k7r581oht8rd****.cn-hangzhou.alb.aliyuncsslb.com/ray/raycg/dashboard/ raysubmit_gmSnPSFqmEXG****Python SDK
Ray menyediakan JobSubmissionClient untuk pengelolaan pekerjaan terprogram. Lihat Python SDK API reference.
REST API
Ray menyediakan REST API untuk pengelolaan pekerjaan berbasis HTTP. Gunakan URL Dasbor Ray sebagai titik masuk. Lihat Ray Jobs REST API reference.