All Products
Search
Document Center

DataWorks:Serverless Ray node

Last Updated:May 01, 2026

Node Serverless Ray DataWorks memungkinkan Anda mengembangkan dan menjadwalkan job Python secara berkala yang menggunakan framework komputasi terdistribusi Ray pada sumber daya EMR Serverless Ray. Topik ini menjelaskan cara menggunakan node Serverless Ray.

Pendahuluan

Di DataWorks, node Serverless Ray memungkinkan Anda menulis kode Python secara online dan mengonfigurasi perintah ray job submit untuk mengembangkan, men-debug, dan menjadwalkan job Anda.

Batasan

  • Sumber daya komputasi: Anda hanya dapat memilih sumber daya komputasi EMR Serverless Ray yang telah di-bind. Serverless resource group 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 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 RAM user untuk mengembangkan tugas, tambahkan RAM user 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

Membuat node Serverless Ray mengikuti prosedur yang sama seperti jenis node lainnya di Data Development. Untuk informasi lebih lanjut, lihat Nodes.

Kembangkan node Serverless Ray

Mengembangkan node Serverless Ray mencakup dua bagian: menulis kode Python di editor kode dan mengonfigurasi perintah pengiriman job di bagian Submit command. Saat Anda membuat file, sistem secara otomatis menghasilkan perintah pengiriman dengan nama file yang sesuai dengan nama node dan memiliki ekstensi .py.

Estimasi Pi dengan Ray

Contoh berikut menggunakan metode Monte Carlo untuk mengestimasi nilai Pi. Contoh ini 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

Pada bagian Submit command, konfigurasikan perintah pengiriman. Contohnya:

ray job submit \
--working-dir "." \
-- python ss_ray.py 1000000
Penting
  • Saat Anda menggunakan direktori kerja lokal, seperti --working-dir ".":

    • Nama file skrip yang mengikuti -- python harus berupa nama node dengan ekstensi .py.

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

  • Saat Anda menggunakan path OSS remote, seperti --working-dir "https://<bucket>.<endpoint>/path/to/your.zip":

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

    • Izin: Anda dapat menggunakan file OSS privat, biasanya berupa paket .zip, sebagai direktori kerja. Node Serverless Ray secara otomatis menggunakan kredensial pengguna atau RAM role yang diasumsikan saat menjalankan job untuk menghasilkan URL akses sementara yang ditandatangani untuk file OSS privat Anda.

    • Prasyarat: Pengguna yang menjalankan node ini harus memiliki izin baca (oss:GetObject) untuk path OSS yang ditentukan.

Konfigurasi node

Anda dapat mengonfigurasi node Serverless Ray berdasarkan deskripsi parameter berikut.

Bagian konfigurasi

Parameter

Deskripsi

Python code

Python code

Kode Python yang menggunakan framework Ray. Mendukung API Ray seperti ray.init() untuk inisialisasi dan dekorator @ray.remote.

Submit command

Submission command

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

runtime-env-json

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

Arguments

Masukkan parameter yang diperlukan untuk kode Anda. Anda dapat mengonfigurasi parameter sebagai parameter dinamis, seperti ${var}.

Jika sebuah job bergantung pada beberapa file Python, Anda dapat membuat file dependensi tersebut sebagai resource Ray File DataWorks, mereferensikannya dalam kode Anda 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 EMR Resources and Functions.

Debug node Serverless Ray

  1. Konfigurasikan properti runtime.

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

    Parameter

    Deskripsi

    Compute Resource

    Pilih sumber daya komputasi Serverless Ray yang telah di-bind.

    Resource Group

    Pilih Serverless resource group yang telah lulus uji konektivitas jaringan. Node Serverless Ray hanya mendukung Serverless resource group.

    Script parameters

    Jika Anda menentukan variabel dalam format ${Parameter Name} saat mengonfigurasi node, Anda harus mengatur Parameter name dan Parameter Value di bagian Script Parameters. Saat waktu proses, sistem akan mengganti variabel tersebut secara dinamis dengan nilai aktualnya. Untuk informasi selengkapnya, lihat Sumber dan ekspresi parameter penjadwalan.

  2. Debug dan jalankan node.

    Klik Save lalu Run untuk memulai debugging.

Langkah berikutnya

  • Configure scheduling properties for a node: Jika node harus dijalankan secara berkala, Anda harus mengonfigurasi Scheduling Policy dan properti penjadwalan lainnya di panel Scheduling Settings di sisi kanan editor node.

  • Publish a node: Jika job harus dijalankan di lingkungan produksi, klik ikon image untuk memulai proses penerbitan. Setelah Anda menerbitkan node ke lingkungan produksi, node tersebut akan dijalankan secara berkala berdasarkan properti penjadwalannya.

Dokumentasi terkait

Untuk informasi lebih lanjut tentang cara mereferensikan Ray File, lihat Lindorm Ray node.