All Products
Search
Document Center

DataWorks:Serverless Ray node

Last Updated:Aug 11, 2026

Node Serverless Ray DataWorks memungkinkan Anda mengembangkan dan menjadwalkan pekerjaan Python secara berkala pada sumber daya komputasi EMR Serverless Ray dengan menggunakan framework terdistribusi Ray.

Pendahuluan

EMR Serverless Ray menyediakan komputasi Ray terkelola di atas ruang kerja Spark. Layanan ini kompatibel dengan API Ray open-source dan mendukung model pemrograman Python untuk komputasi terdistribusi, pembelajaran mesin, dan pemrosesan data. Dengan node Serverless Ray, Anda dapat menulis kode Python secara daring serta mengonfigurasi perintah ray job submit untuk mengembangkan, men-debug, dan menjadwalkan pekerjaan Anda.

Batasan

  • Sumber daya komputasi: Anda hanya dapat memilih sumber daya komputasi EMR Serverless Ray yang telah di-bind. Kelompok sumber daya serverless juga harus memiliki konektivitas jaringan dengan sumber daya komputasi tersebut.

  • Bahasa: Hanya bahasa Python yang didukung.

  • Eksekusi: Anda hanya dapat mengirimkan seluruh skrip untuk dieksekusi. Menjalankan baris kode tunggal atau blok kode individual tidak didukung.

Prasyarat

  • Bind sumber daya komputasi EMR Serverless Ray ke ruang kerja DataWorks target dan pastikan kluster Ray tersedia.

  • (Opsional) Jika Anda menggunakan pengguna RAM untuk mengembangkan task, tambahkan pengguna RAM tersebut ke ruang kerja dan berikan role Developer atau Workspace Administrator. Role Workspace Administrator memiliki izin yang luas, sehingga berikan dengan hati-hati. Untuk informasi lebih lanjut tentang cara menambahkan anggota, lihat Add a member to a workspace.

    Catatan

    Jika Anda menggunakan akun root, Anda dapat melewati langkah ini.

Buat node Serverless Ray

Anda membuat node Serverless Ray dengan cara yang sama seperti jenis node lainnya di Data Studio. Untuk informasi lebih lanjut, lihat Nodes.

Kembangkan node Serverless Ray

Untuk mengembangkan node Serverless Ray, tulis kode Python di editor kode dan konfigurasikan perintah pengiriman pekerjaan di bagian Submit Command. Saat Anda membuat file, sistem secara otomatis menghasilkan perintah pengiriman dengan nama file yang sesuai dengan nama node dan berekstensi .py.

Estimasi Pi dengan Ray

Contoh berikut menggunakan metode Monte Carlo untuk mengestimasi nilai Pi, yang menunjukkan cara menggunakan editor kode dan perintah pengiriman secara bersamaan.

Langkah 1: Tulis kode Python

Di editor kode, tulis kode Python berikut.

import ray
import random
import time
import sys

ray.init()

@ray.remote
def compute_points_in_circle(num_points: int) -> int:
    inside = 0
    for _ in range(num_points):
        x = random.uniform(0, 1)
        y = random.uniform(0, 1)
        if x * x + y * y <= 1:
            inside += 1
    return inside

def estimate_pi(total_points: int, num_workers: int = 4) -> float:
    start_time = time.time()
    points_per_worker = total_points // num_workers
    tasks = [compute_points_in_circle.remote(points_per_worker) for _ in range(num_workers)]
    results = ray.get(tasks)
    total_inside = sum(results)
    pi_estimate = 4.0 * total_inside / total_points
    print(f"Estimated π: {pi_estimate:.10f}, seconds: {time.time() - start_time:.4f}")
    return pi_estimate

if __name__ == "__main__":
    estimate_pi(total_points=int(sys.argv[1]), num_workers=4)
    ray.shutdown()

Langkah 2: Konfigurasi perintah Submit

Di bagian Submit Command, konfigurasikan perintah pengiriman. Contohnya:

ray job submit \
--working-dir "." \
-- python ss_ray.py 1000000
Penting

  • Saat menggunakan direktori kerja lokal (misalnya, --working-dir ".")

    • Nama file skrip setelah -- python harus sesuai dengan nama node dan berekstensi .py.

    • Platform secara otomatis mengontrol dan menimpa parameter --address, --submission-id, dan --working-dir. Anda tidak perlu mengonfigurasinya secara manual.

  • Saat menggunakan path OSS remote (misalnya, --working-dir "oss://<bucket>/<file_path>")

    • Platform tidak menimpa path remote yang Anda tentukan untuk --working-dir.

    • Izin: Anda dapat menggunakan file OSS privat (biasanya paket .zip) sebagai direktori kerja. Node Serverless Ray secara otomatis menggunakan kredensial pengguna yang menjalankan task (atau RAM role yang diasumsikan oleh pengguna) untuk menghasilkan URL akses sementara bertanda tangan bagi file OSS privat Anda.

    • Prasyarat: Anda harus memastikan bahwa pengguna yang menjalankan node ini memiliki izin baca (oss:GetObject) pada path OSS yang ditentukan.

Referensi konfigurasi node

Tabel berikut menjelaskan parameter konfigurasi untuk node Serverless Ray.

Bagian

Parameter

Deskripsi

Python code

Python code

Tulis kode Python yang menggunakan framework Ray. API Ray seperti ray.init() untuk inisialisasi dan dekorator @ray.remote didukung.

Submit command

Submit command

Konfigurasikan perintah pengiriman untuk pekerjaan Ray. Format perintahnya adalah ray job submit [options] -- python script.py [args].

runtime-env-json

Opsional. Konfigurasikan lingkungan runtime. Misalnya, gunakan bidang pip untuk menginstal paket dependensi Python tambahan. Contoh: --runtime-env-json '{"pip": ["numpy", "pandas"]}'.

Parameters

Tentukan parameter yang akan diteruskan ke kode Anda. Anda dapat mengonfigurasi parameter sebagai parameter dinamis dengan menggunakan ${var}.

Jika pekerjaan Anda bergantung pada beberapa file Python, Anda dapat membuat file dependensi tersebut sebagai resource Ray File DataWorks, mereferensikannya dalam kode Anda dengan menggunakan ##@resource_reference, lalu menyusun perintah ray job submit dengan --working-dir yang mengarah ke direktori kerja. Untuk informasi lebih lanjut tentang pembuatan resource, lihat Create an EMR resource.

Debug node Serverless Ray

  1. Konfigurasikan konfigurasi run.

    Di panel Run Configuration di sisi kanan node, konfigurasikan parameter berikut.

    Parameter

    Deskripsi

    Compute Resource

    Pilih sumber daya komputasi Serverless Ray yang telah Anda asosiasikan.

    Resource Group

    Pilih kelompok sumber daya serverless yang telah lulus uji konektivitas jaringan. Node Serverless Ray hanya mendukung kelompok sumber daya serverless.

    Script Parameters

    Saat mengonfigurasi konten node, Anda dapat mendefinisikan variabel dengan menggunakan ${nama parameter}. Konfigurasikan bagian Script Parameters dengan Parameter name dan Parameter Value. Nilai-nilai ini akan diganti secara dinamis dengan nilai aktual saat waktu proses. Untuk informasi lebih lanjut, lihat Configure scheduling parameters.

  2. Debug dan jalankan node.

    Klik Save lalu klik Run untuk men-debug node.

Langkah berikutnya

  • Configure schedule settings: Jika Anda ingin node dalam direktori proyek dijadwalkan secara berkala, konfigurasikan Scheduling Policy dan properti penjadwalan terkait di panel Scheduling Settings di sisi kanan node.

  • Deploy a node: Jika Anda ingin menerapkan task ke lingkungan produksi, klik ikon image di halaman untuk memulai proses penerapan. Node dalam direktori proyek hanya dijadwalkan secara berkala setelah diterapkan ke lingkungan produksi.

Referensi

Untuk detail tentang mereferensikan resource Ray File, lihat Reference a Ray File resource.