Uso de los parámetros de trabajo en los trabajos de Ray
Establece los argumentos para los trabajos de Ray AWS Glue de la misma manera que establece los argumentos para AWS Glue para los trabajos de Spark. Para obtener más información sobre la API de AWS Glue, consulte Jobs. Puede configurar los trabajos de Ray AWS Glue con diferentes argumentos, que se enumeran en esta referencia. También puede presentar sus propios argumentos.
Puede configurar un trabajo en la consola, en la pestaña Job details (Detalles del trabajo), en el encabezado Job Parameters (Parámetros del trabajo). También puede configurar un trabajo mediante la AWS CLI al establecer DefaultArguments
en un trabajo o Arguments
en una ejecución de trabajos. Los parámetros de los trabajos y los argumentos predeterminados permanecerán con el trabajo durante varias ejecuciones.
Por ejemplo, a continuación se muestra la sintaxis para ejecutar un trabajo con --arguments
para configurar un 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"'
Después de establecer los argumentos, puede acceder a los parámetros del trabajo desde su trabajo de Ray mediante variables de entorno. Esto permite configurar el trabajo para cada ejecución. El nombre de la variable de entorno será el nombre del argumento del trabajo sin el prefijo --
.
Por ejemplo, en el anterior, los nombres de las variables serían scriptLocation
y test-environment
. Luego, recuperaría el argumento mediante los métodos disponibles en la biblioteca estándar: test_environment = os.environ.get('test-environment')
. Para más información sobre el acceso a las variables de entorno con Python, consulte módulo del sistema operativo
Configure la forma en que los trabajos de Ray generan registros
De forma predeterminada, los trabajos de Ray generan registros y métricas que se envían a CloudWatch y Amazon S3. Puede usar el parámetro --logging_configuration
para modificar la forma en que se generan los registros; actualmente, puede usarlo para evitar que los trabajos de Ray generen varios tipos de registros. Este parámetro toma un objeto JSON, cuyas claves corresponden a los registros o comportamientos que desea modificar. Admite las siguientes claves:
CLOUDWATCH_METRICS
: configura las series de métricas de CloudWatch que se pueden usar para visualizar el estado del trabajo. Para obtener más información sobre las métricas, consulte Supervisión de trabajos de Ray con métricas.CLOUDWATCH_LOGS
: configura los registros de CloudWatch que proporcionan detalles a nivel de aplicación de Ray acerca del estado de ejecución del trabajo. Para obtener más información acerca de los registros, consulte Solución de problemas AWS Glue de errores de Ray en los registros.S3
: configura lo que AWS Glue escribe en Amazon S3, principalmente información similar a la de los registros de CloudWatch, pero como archivos y no como flujos de registros.
Para deshabilitar un comportamiento de registro de Ray, indique el valor {\"IS_ENABLED\": \"False\"}
. Por ejemplo, para deshabilitar las métricas y los registros de CloudWatch, proporcione la siguiente configuración:
"--logging_configuration": "{\"CLOUDWATCH_METRICS\": {\"IS_ENABLED\": \"False\"}, \"CLOUDWATCH_LOGS\": {\"IS_ENABLED\": \"False\"}}"
Referencia
Los trabajos de Ray reconocen los siguientes nombres de argumentos que se pueden usar para configurar el entorno de scripts para los trabajos de Ray y las ejecuciones de trabajos:
-
--logging_configuration
: se usa para detener la generación de varios registros creados por trabajos de Ray. Estos registros se generan de forma predeterminada en todos los trabajos de Ray. Formato: objeto JSON incluido en una cadena de escape. Para obtener más información, consulte Configure la forma en que los trabajos de Ray generan registros. -
--min-workers
: la cantidad mínima de nodos de trabajo que se asignan a un trabajo de Ray. Un nodo de trabajo puede ejecutar varias réplicas, una por CPU virtual. Formato: entero. Mínimo: 0. Máximo: valor especificado en--number-of-workers (NumberOfWorkers)
en la definición del trabajo. Para obtener más información sobre la contabilidad de los nodos de trabajo, consulte Contabilidad de los trabajadores en los trabajos de Ray. -
--object_spilling_config
: AWS Glue porque Ray admite el uso de Amazon S3 como una forma de ampliar el espacio disponible para el almacén de objetos de Ray. Para habilitar este comportamiento, puede proporcionar a Ray un objeto que vuelque un objeto de configuración de JSON con este parámetro. Para obtener más información sobre la configuración de volcado de objetos de Ray, consulte Derrame de objetosen la documentación de Ray. Formato: objeto JSON. AWS Glue para Ray solo admite el volcado en el disco o en Amazon S3 a la vez. Puede proporcionar varios lugares para el volcado, siempre y cuando respeten esta limitación. Cuando vuelque a Amazon S3, también necesitará agregar permisos de IAM al trabajo para este bucket.
Al proporcionar un objeto JSON como configuración con la CLI, debe proporcionarlo como una cadena, con el objeto JSON incluido en una cadena de escape. Por ejemplo, un valor de cadena para volcar en una ruta de Amazon S3 tendría el siguiente aspecto:
"{\"type\": \"smart_open\", \"params\": {\"uri\":\"
. En AWS Glue Studio, proporcione este parámetro como un objeto JSON sin formato adicional.s3path
\"}}" -
--object_store_memory_head
: la memoria asignada al almacén de objetos de Plasma en el nodo principal de Ray. Esta instancia ejecuta servicios de administración de clústeres, así como réplicas de procesos de trabajo. El valor representa un porcentaje de memoria libre en la instancia después de un inicio en caliente. Este parámetro se utiliza para ajustar las cargas de trabajo de uso intensivo de la memoria. Los valores predeterminados son aceptables para la mayoría de los casos de uso. Formato: entero positivo. Mínimo: 1. Máximo: 100.Para más información sobre Plasma, consulte The Plasma In-Memory Object Store
(Almacén de objetos en memoria de Plasma) en la documentación de Ray. -
--object_store_memory_worker
: memoria asignada al almacén de objetos de Plasma en los nodos de trabajo de Ray. Estas instancias solo ejecutan réplicas de procesos de trabajo. El valor representa un porcentaje de memoria libre en la instancia después de un inicio en caliente. Este parámetro se utiliza para ajustar las cargas de trabajo de uso intensivo de la memoria. Los valores predeterminados son aceptables para la mayoría de los casos de uso. Formato: entero positivo. Mínimo: 1. Máximo: 100.Para más información sobre Plasma, consulte The Plasma In-Memory Object Store
(Almacén de objetos en memoria de Plasma) en la documentación de Ray. -
--pip-install
: un conjunto de paquetes de Python para instalar. Puede instalar paquetes desde PyPI con este argumento. Formato: lista delimitada por comas.Una entrada de paquete de PyPI tiene el formato
package==version
, con el nombre y la versión de PyPI del paquete de destino. Las entradas utilizan la coincidencia de versiones de Python para hacer coincidir el paquete y la versión, como==
, no la igualdad simple=
. Hay otros operadores de coincidencia de versión. Para más información, consulte PEP 440en el sitio web de Python. También puede proporcionar módulos personalizados con --s3-py-modules
. -
--s3-py-modules
: un conjunto de rutas de Amazon S3 que alojan distribuciones de módulos de Python. Formato: lista delimitada por comas.Puede usar esto para distribuir sus propios módulos en el trabajo de Ray. También puede proporcionar módulos desde PyPI con
--pip-install
. A diferencia de ETL de AWS Glue, los módulos personalizados no se configuran mediante pip, sino que se pasan a Ray para ser distribuidos. Para obtener más información, consulte Módulos de Python adicionales para trabajos de Ray. -
--working-dir
: una ruta a un archivo .zip alojado en Amazon S3 que contiene archivos que se van a distribuir a todos los nodos que ejecutan el trabajo de Ray. Formato: cadena. Para obtener más información, consulte Proporcionar archivos a su trabajo de Ray.