Usar parâmetros de trabalho em trabalhos do Ray - AWS Glue

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar parâmetros de trabalho em trabalhos do Ray

Você define os argumentos para os trabalhos do Ray no AWS Glue da mesma forma que define os argumentos no AWS Glue para trabalhos do Spark. Para obter mais informações sobre a API do AWS Glue, consulte Tarefas. Você pode configurar trabalhos do Ray no AWS Glue com argumentos diferentes, que estão listados nesta referência. Você também pode fornecer seus próprios argumentos.

É possível configurar um trabalho pelo do console, na guia Job details (Detalhes do trabalho), no cabeçalho Job Parameters (Parâmetros do trabalho). Você também pode configurar um trabalho usando a AWS CLI definindo DefaultArguments em um trabalho ou definindo Arguments em uma execução de trabalho. Os argumentos padrão e os parâmetros do trabalho serão mantidos com o trabalho durante várias execuções.

Por exemplo, veja a seguir a sintaxe para a execução de um trabalho usando --arguments para definir um parâmetro especial.

$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py",--test-environment="true"'

Depois de definir os argumentos, você pode acessar os parâmetros do trabalho de dentro do trabalho do Ray por meio das variáveis de ambiente. Essa é uma forma de configurar o trabalho para cada execução. O nome da variável de ambiente será o nome do argumento do trabalho sem o prefixo --.

No exemplo anterior, os nomes das variáveis seriam scriptLocation e test-environment. Depois, você recuperaria o argumento por meio dos métodos disponíveis na biblioteca padrão: test_environment = os.environ.get('test-environment'). Para obter mais informações sobre como acessar variáveis de ambiente com o Python, consulte módulo de sistema operacional na documentação do Python.

Configurar a forma como os trabalhos do Ray geram logs

Por padrão, os trabalhos do Ray geram logs e métricas que são enviados para o CloudWatch e para o Amazon S3. É possível usar o parâmetro --logging_configuration para alterar a forma como os logs são gerados. No momento, você pode usá-lo para impedir que os trabalhos do Ray gerem diversos tipos de logs. Este parâmetro usa um objeto em JSON, cujas chaves correspondem aos logs ou aos comportamentos que você gostaria de alterar. Ele oferece suporte para as seguintes chaves:

  • CLOUDWATCH_METRICS: configura as séries de métricas do CloudWatch que podem ser usadas para visualizar a integridade do trabalho. Para obter mais informações sobre métricas, consulte Monitorar trabalhos do Ray com métricas.

  • CLOUDWATCH_LOGS: configura os logs do CloudWatch que fornecem detalhes no nível da aplicação do Ray sobre o status de execução do trabalho. Para obter mais informações sobre logs, consulte Solucionar problemas do AWS Glue para erros do Ray a partir de logs.

  • S3: configura o que o AWS Glue grava no Amazon S3, principalmente em relação a informações semelhantes aos logs do CloudWatch, mas como arquivos em vez de fluxos de logs.

Para desabilitar um comportamento de registro em log do Ray, forneça o valor {\"IS_ENABLED\": \"False\"}. Por exemplo, para desabilitar as métricas e os logs do CloudWatch, forneça a seguinte configuração:

"--logging_configuration": "{\"CLOUDWATCH_METRICS\": {\"IS_ENABLED\": \"False\"}, \"CLOUDWATCH_LOGS\": {\"IS_ENABLED\": \"False\"}}"

Referência

Os trabalhos do Ray reconhecem os seguintes nomes de argumento que podem ser usados para configurar o ambiente de script para os trabalhos e execuções de trabalhos do Ray:

  • --logging_configuration: é usado para interromper a geração de diversos logs criados por trabalhos do Ray. Esses logs são gerados por padrão em todos os trabalhos do Ray. Formato: objeto em JSON com escape de string. Para ter mais informações, consulte Configurar a forma como os trabalhos do Ray geram logs.

  • --min-workers: o número mínimo de nós de processamento alocados a um trabalho do Ray. Um nó de processamento pode executar várias réplicas, uma por cada CPU virtual. Formato: número inteiro. Mínimo: 0. Máximo: valor especificado em --number-of-workers (NumberOfWorkers) na definição do trabalho. Para obter mais informações sobre a contabilização de nó de processamento, consulte Explicar os operadores em trabalhos do Ray.

  • --object_spilling_config: o AWS Glue para Ray permite o uso do Amazon S3 como forma de ampliar o espaço disponível para o armazenamento de objetos do Ray. Para habilitar esse comportamento, você pode fornecer ao Ray um objeto de configuração JSON Object spilling com esse parâmetro. Para obter mais informações sobre a configuração de object spilling do Ray, consulte Object Spilling na documentação do Ray. Formato: objeto JSON.

    O AWS Glue para Ray só permite spilling para o disco ou para o Amazon S3 de uma só vez. Você pode fornecer vários locais para spilling, desde que respeitem essa limitação. Ao fazer o spilling para o Amazon S3, você também precisará adicionar permissões do IAM ao trabalho para esse bucket.

    Ao fornecer um objeto JSON como configuração com a CLI, você deve fornecê-lo como uma string, com o objeto JSON escapado por string. Por exemplo, um valor de string para spilling para um caminho do Amazon S3 seria assim: "{\"type\": \"smart_open\", \"params\": {\"uri\":\"s3path\"}}". No AWS Glue Studio, forneça esse parâmetro como um objeto JSON sem formatação extra.

  • --object_store_memory_head: a memória alocada para o armazenamento de objetos Plasma no nó principal do Ray. Essa instância executa serviços de gerenciamento de cluster, bem como réplicas de processador. O valor representa uma porcentagem da memória livre na instância após uma inicialização a quente. Use esse parâmetro para ajustar as workloads com uso intenso de memória; os valores padrão são aceitáveis para a maioria dos usuários. Formato: número inteiro positivo. Mínimo: 1. Máximo: 100.

    Para obter mais informações sobre o Plasma, consulte The Plasma In-Memory Object Store (Armazenamento de objeto em memória do Plasma) na documentação do Ray.

  • --object_store_memory_worker: a memória alocada para o armazenamento de objetos do Plasma no nó principal do Ray. Essas instâncias executam apenas réplicas de processador. O valor representa uma porcentagem da memória livre na instância após uma inicialização a quente. Esse parâmetro é usado para ajustar as workloads com uso intenso de memória; os valores padrão são aceitáveis para a maioria dos usuários. Formato: número inteiro positivo. Mínimo: 1. Máximo: 100.

    Para obter mais informações sobre o Plasma, consulte The Plasma In-Memory Object Store (Armazenamento de objeto em memória do Plasma) na documentação do Ray.

  • --pip-install: um conjunto de pacotes do Python a serem instalados. Você pode instalar pacotes do PyPI usando esse argumento. Formato: lista delimitada por vírgulas.

    Uma entrada de pacote PyPI tem o formato de package==version, com o nome PyPI e a versão do pacote de destino. As entradas usam a correspondência de versões do Python para combinar o pacote com a versão, como ==, não um único sinal de igual =. Existem outros operadores que correspondem à versão. Para obter mais informações, consulte PEP 440 no site da Python. Você também pode fornecer os módulos personalizados com os --s3-py-modules.

  • --s3-py-modules: um conjunto de caminhos do Amazon S3 que hospedam distribuições de módulos do Python. Formato: lista delimitada por vírgulas.

    Você pode usar essa opção para distribuir seus próprios módulos para o seu trabalho do Ray. Você também pode fornecer os módulos do PyPi com --pip-install. Ao contrário de ETL do AWS Glue, os módulos personalizados não são configurados por pip, mas são passados para o Ray para distribuição. Para ter mais informações, consulte Módulos adicionais do Python para trabalhos do Ray.

  • --working-dir: um caminho para um arquivo.zip hospedado no Amazon S3 que contém arquivos a serem distribuídos a todos os nós que executam o trabalho do Ray. Formato: string. Para ter mais informações, consulte Fornecer arquivos para o trabalho do Ray.