Todos os produtos
Search
Central de documentação

DataWorks:Serverless Ray node

Última atualização: Jun 27, 2026

Os nós Serverless Ray do DataWorks permitem desenvolver e agendar periodicamente jobs Python com o framework distribuído Ray nos recursos de computação do EMR Serverless Ray.

Introdução

O EMR Serverless Ray oferece recursos de computação Ray gerenciados em workspaces Spark. Ele é compatível com as APIs Ray open source e suporta o modelo de programação Python para computação distribuída, machine learning e processamento de dados. Com os nós Serverless Ray do DataWorks, você escreve código Python online e configure o comando ray job submit para desenvolver, depurar e agendar seus jobs.

Limitações

  • Recursos de computação: Selecione apenas um recurso de computação EMR Serverless Ray vinculado. O Serverless resource group também deve ter conectividade de rede com o recurso de computação.

  • Linguagem: Apenas a linguagem Python é suportada.

  • Execução: Envie o script inteiro para execução. Não há suporte para execução de linhas individuais ou blocos de código isolados.

Pré-requisitos

  • Vincule um recurso de computação EMR Serverless Ray ao workspace DataWorks de destino e verifique se o cluster Ray está disponível.

  • (Opcional) Se utilizar um usuário RAM para desenvolver tarefas, adicione-o ao workspace e conceda-lhe a função Developer ou Workspace Administrator. A função Workspace Administrator possui permissões amplas; portanto, conceda-a com cautela. Para mais informações sobre como adicionar membros, consulte Adicionar um membro a um workspace.

    Nota

    Se estiver usando uma conta raiz, ignore esta etapa.

Criar um nó Serverless Ray

Crie um nó Serverless Ray da mesma forma que outros tipos de nó no Data Studio. Para mais informações, consulte Nós.

Desenvolver um nó Serverless Ray

Para desenvolver um nó Serverless Ray, escreva código Python no editor de código e configure o comando de envio de job na seção Submit Command. Ao criar um arquivo, o sistema gera automaticamente um comando de envio com nome de arquivo correspondente ao nome do nó e extensão .py.

Estimar Pi com Ray

O exemplo a seguir usa o método de Monte Carlo para estimar Pi e demonstra como utilizar o editor de código e o comando de envio em conjunto.

Etapa 1: Escrever o código Python

No editor de código, escreva o seguinte código Python.

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()

Etapa 2: Configurar o comando Submit

Na seção Submit Command, configure o comando de envio. Exemplo:

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

Importante
  • Ao usar um diretório de trabalho local (por exemplo, --working-dir "."):

    • O nome do arquivo de script após -- python deve corresponder ao nome do nó com a extensão .py.

    • A plataforma controla e substitui automaticamente os parâmetros --address, --submission-id e --working-dir. Não é necessário configurá-los manualmente.

  • Ao usar um caminho remoto do OSS (por exemplo, --working-dir "https://<bucket>.<endpoint>/path/to/your.zip"):

    • A plataforma não substitui o caminho remoto especificado para --working-dir.

    • Permissões: Use um arquivo privado do OSS (geralmente um pacote .zip) como diretório de trabalho. O nó Serverless Ray usa automaticamente as credenciais do usuário executor da tarefa (ou a função RAM assumida pelo usuário) para gerar uma URL de acesso temporário assinada para o arquivo privado no OSS.

    • Pré-requisito: Garanta que o usuário executor deste nó tenha permissões de leitura (oss:GetObject) no caminho do OSS especificado.

Referência de configuração do nó

A tabela a seguir descreve os parâmetros de configuração de um nó Serverless Ray.

Seção

Parâmetro

Descrição

Código Python

Código Python

Escreva código Python com o framework Ray. APIs Ray como ray.init() para inicialização e o decorador @ray.remote são suportadas.

Comando de envio

Comando de envio

Configure o comando de envio para o job Ray. O formato do comando é ray job submit [options] -- python script.py [args].

runtime-env-json

Opcional. Configure o ambiente de tempo de execução. Por exemplo, use o campo pip para instalar pacotes de dependência Python adicionais. Exemplo: --runtime-env-json '{"pip": ["numpy", "pandas"]}'.

Parâmetros

Especifique os parâmetros a serem passados para o código. Defina um parâmetro como dinâmico usando ${var}.

Se o job depender de vários arquivos Python, crie os arquivos de dependência como recursos Ray File do DataWorks, referencie-os no código usando ##@resource_reference e organize o comando ray job submit com --working-dir apontando para o diretório de trabalho. Para mais informações sobre criação de recursos, consulte Criar um recurso EMR.

Depurar um nó Serverless Ray

  1. Configure as definições de execução.

    No painel Run Configuration, à direita do nó, defina os seguintes parâmetros.

    Parâmetro

    Descrição

    Compute Resource

    Selecione o recurso de computação Serverless Ray associado.

    Resource Group

    Selecione um grupo de recursos serverless aprovado no teste de conectividade de rede. Nós Serverless Ray suportam apenas grupos de recursos serverless.

    Script Parameters

    Ao configurar o conteúdo do nó, defina variáveis usando ${nome do parâmetro}. Preencha a seção Script Parameters com o Parameter name e o Parameter Value. Esses valores são substituídos dinamicamente pelos valores reais durante a execução. Para mais informações, consulte Configurar parâmetros de agendamento.

  2. Depure e execute o nó.

    Clique em Save e, em seguida, clique em Run para depurar o nó.

Próximas etapas

  • Configurar definições de agendamento: Para agendar periodicamente os nós no diretório do projeto, configure a Scheduling Policy e as propriedades relacionadas no painel Scheduling Settings, à direita do nó.

  • Implantar um nó: Para implantar a tarefa no ambiente de produção, clique em image na página para iniciar o processo de implantação. Os nós no diretório do projeto só serão agendados periodicamente após a implantação no ambiente de produção.

Referência

Para detalhes sobre como referenciar recursos Ray File, consulte Referenciar um recurso Ray File.