EmrActivity - AWS Data Pipeline

AWS Data Pipeline ya no está disponible para nuevos clientes. Los clientes actuales de AWS Data Pipeline pueden seguir utilizando el servicio con normalidad. Más información

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

EmrActivity

Ejecuta un clúster de EMR.

AWS Data Pipeline usa un formato para los pasos diferente al de AmazonEMR; por ejemplo, AWS Data Pipeline usa argumentos separados por comas después del JAR nombre en el campo del EmrActivity paso. El siguiente ejemplo muestra un paso formateado para AmazonEMR, seguido de su AWS Data Pipeline equivalente:

s3://example-bucket/MyWork.jar arg1 arg2 arg3
"s3://example-bucket/MyWork.jar,arg1,arg2,arg3"

Ejemplos

A continuación se muestra un ejemplo de este tipo de objeto. En este ejemplo, se utilizan versiones anteriores de AmazonEMR. Comprueba que este ejemplo es correcto con la versión del EMR clúster de Amazon que estás utilizando.

Este objeto hace referencia a otros tres objetos que se definirían en el mismo archivo de definición de canalización. MyEmrCluster es un objeto EmrCluster, y MyS3Input y MyS3Output son objetos S3DataNode.

nota

En este ejemplo, puedes reemplazar el step campo por la cadena de clúster que desees, que puede ser un script de Pig, un clúster de streaming de Hadoop, tu propia cadena personalizada, JAR incluidos sus parámetros, etc.

Hadoop 2.x (3.x) AMI

{ "id" : "MyEmrActivity", "type" : "EmrActivity", "runsOn" : { "ref" : "MyEmrCluster" }, "preStepCommand" : "scp remoteFiles localFiles", "step" : ["s3://mybucket/myPath/myStep.jar,firstArg,secondArg,-files,s3://mybucket/myPath/myFile.py,-input,s3://myinputbucket/path,-output,s3://myoutputbucket/path,-mapper,myFile.py,-reducer,reducerName","s3://mybucket/myPath/myotherStep.jar,..."], "postStepCommand" : "scp localFiles remoteFiles", "input" : { "ref" : "MyS3Input" }, "output" : { "ref" : "MyS3Output" } }
nota

Para pasar argumentos a una aplicación en un paso, es necesario especificar la región en la ruta del script, como en el siguiente ejemplo. Además, es posible que necesite aplicar escape a los argumentos que transfiere. Por ejemplo, si usa script-runner.jar para ejecutar un script de shell y desea transferir argumentos al script, debe aplicar escape a las comas que los separan. En el siguiente slot del paso se ilustra cómo hacerlo:

"step" : "s3://eu-west-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://datapipeline/echo.sh,a\\\\,b\\\\,c"

Este paso usa script-runner.jar para ejecutar el script de shell echo.sh y transfiere a, b y c como argumento único al script. El primer carácter de escape se quita del argumento obtenido, por lo que es posible que sea necesario aplicar escape de nuevo. Por ejemplo, si File\.gz tuvieras un argumento enJSON, podrías escapar de él usando. File\\\\.gz Sin embargo, debido que el primer escape se ha descartado, debe usar File\\\\\\\\.gz .

Sintaxis

Campos de invocación de objetos Descripción Tipo de slot
schedule Este objeto se invoca dentro de la ejecución de un intervalo de programación. Especifique una referencia de programación a otro objeto para establecer el orden de ejecución de dependencia para este objeto. Puede cumplir este requisito estableciendo de forma explícita un programa en el objeto, por ejemplo, especificando "schedule": {"ref": "DefaultSchedule"}. En la mayoría de los casos, es mejor poner la referencia de programación en el objeto de la canalización predeterminado de modo que todos los objetos hereden ese programa. O bien, si la canalización tiene un árbol de programas (programas dentro del programa maestro), puede crear un objeto principal que tenga una referencia de programación. Para obtener más información acerca de las configuraciones de programación opcionales de ejemplo, consulte https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html Objeto de referencia, por ejemplo, «schedule»: {"ref»:» myScheduleId «}

Grupo obligatorio (se requiere uno de los siguientes) Descripción Tipo de slot
runsOn El EMR clúster de Amazon en el que se ejecutará este trabajo. Objeto de referencia, por ejemplo, "runsOn«: {" ref»:» myEmrCluster Id "}
workerGroup El grupo de procesos de trabajo. Este se usa para dirigir tareas. Si proporciona un valor runsOn y existe workerGroup, workerGroup se ignora. Cadena

Campos opcionales Descripción Tipo de slot
attemptStatus Estado más reciente notificado por la actividad remota. Cadena
attemptTimeout Tiempo de espera para que se complete el trabajo remoto. Si se establece, se puede reintentar una actividad remota que no se complete dentro del tiempo de inicio establecido. Período
dependsOn Especificar la dependencia de otro objeto ejecutable. Objeto de referencia, por ejemplo, "dependsOn«: {" ref»:» myActivityId «}
failureAndRerunModo failureAndRerunMode. Enumeración
input La ubicación de los datos de entrada. Objeto de referencia, por ejemplo, «input»: {"ref»:» myDataNode Id "}
lateAfterTimeout El tiempo transcurrido desde el inicio de la canalización dentro del cual el objeto debe completarse. Solo se activa cuando el tipo de programación no está establecido en ondemand. Período
maxActiveInstances El número máximo de instancias activas simultáneas de un componente. Las nuevas ejecuciones no cuentan para el número de instancias activas. Entero
maximumRetries El número máximo de intentos en caso de error. Entero
onFail Acción que se debe ejecutar cuando el objeto actual produzca un error. Objeto de referencia, por ejemplo, "onFail«: {" ref»:» myActionId «}
onLateAction Acciones que deben iniciarse si un objeto todavía no se ha programado o no se ha completado. Objeto de referencia, por ejemplo, "onLateAction«: {" ref»:» myActionId «}
onSuccess Acción que se debe ejecutar cuando el objeto actual se complete correctamente. Objeto de referencia, por ejemplo, "onSuccess«: {" ref»:» myActionId «}
salida La ubicación de los datos de salida. Objeto de referencia, por ejemplo, «output»: {"ref»:» myDataNode Id "}
parent El elemento principal del objeto actual del que se heredarán los slots. Objeto de referencia, por ejemplo, «parent»: {"ref»:» myBaseObject Id "}
pipelineLogUri Amazon S3URI, como 's3://BucketName/Prefix/ 'para cargar los registros de la canalización. Cadena
postStepCommand Scripts de shell que se van a ejecutar después de terminar todos los pasos. Para especificar varios scripts, hasta 255, añada varios campos postStepCommand. Cadena
precondition Opcionalmente, defina una condición previa. Un nodo de datos no se marca como "READY" hasta que se hayan cumplido todas las condiciones previas. Objeto de referencia, por ejemplo, «condición previa»: {"ref»:» myPreconditionId «}
preStepCommand Scripts de shell que se van a ejecutar antes de que se ejecute algún paso. Para especificar varios scripts, hasta 255, añada varios campos preStepCommand. Cadena
reportProgressTimeout El tiempo de espera para llamadas sucesivas del trabajo remoto a reportProgress. Si se establece, las actividades remotas que no informen de su progreso durante el período especificado pueden considerarse estancadas y, en consecuencia, reintentarse. Período
resizeClusterBeforeEn ejecución

Cambiar el tamaño del clúster antes de realizar esta actividad para adaptarse a las tablas de DynamoDB especificadas como entradas o salidas.

nota

Si EmrActivity usa un DynamoDBDataNode nodo de datos de entrada o salida, y si lo configura enTRUE, AWS Data Pipeline comienza resizeClusterBeforeRunning a usar tipos de m3.xlarge instancia. Se sobrescriben las opciones de tipo de instancia con m3.xlarge, lo que podría aumentar los costos mensuales.

Booleano
resizeClusterMaxInstancias Un límite del número máximo de instancias que el algoritmo de cambio de tamaño puede solicitar. Entero
retryDelay Duración del tiempo de espera entre dos reintentos. Período
scheduleType El tipo de programa le permite especificar si los objetos de la definición de la canalización deben programarse al principio o al final del intervalo. Los valores son: cron, ondemand y timeseries. La programación timeseries significa que las instancias se programan al final de cada intervalo. La programación cron significa que las instancias se programan al principio de cada intervalo. Un programa ondemand le permite ejecutar una canalización una vez por activación. No tiene que clonar o recrear la canalización para ejecutarla de nuevo. Si usa un programa ondemand, debe especificarse en el objeto predeterminado y debe ser el único scheduleType especificado para los objetos de la canalización. Para usar canalizaciones ondemand, solo tiene que llamar a la operación ActivatePipeline para cada ejecución posterior. Enumeración
paso Uno o varios pasos para que se ejecute el clúster. Para especificar varios pasos, hasta 255, añada varios campos step. Usa argumentos separados por comas después del JAR nombre; por ejemplo, "»s3://example-bucket/MyWork.jar,arg1,arg2,arg3. Cadena

Campos de tiempo de ejecución Descripción Tipo de slot
@activeInstances Lista de los objetos de instancias activas programados actualmente. Objeto de referencia, por ejemplo, "activeInstances«: {" ref»:» myRunnableObject Id "}
@actualEndTime La hora a la que finalizó la ejecución de este objeto. DateTime
@actualStartTime La hora a la que comenzó la ejecución de este objeto. DateTime
cancellationReason El cancellationReason si este objeto se ha cancelado. Cadena
@cascadeFailedOn Descripción de la cadena de dependencia en la que ha fallado el objeto. Objeto de referencia, por ejemplo, "cascadeFailedOn«: {" ref»:» myRunnableObject Id "}
emrStepLog Los registros de EMR pasos de Amazon solo están disponibles en los intentos de EMR actividad Cadena
errorId El errorId si este objeto ha fallado. Cadena
errorMessage El errorMessage si este objeto ha fallado. Cadena
errorStackTrace El seguimiento de la pila de error si este objeto ha fallado. Cadena
@finishedTime La hora a la que este objeto finalizó su ejecución. DateTime
hadoopJobLog Los registros de trabajos de Hadoop están disponibles cuando se intenta realizar actividades EMR basadas en ellas. Cadena
@healthStatus El estado de salud del objeto que refleja el éxito o el fracaso de la última instancia de objeto que alcanzó un estado terminado. Cadena
@healthStatusFromInstanceId ID del último objeto de instancia que alcanzó un estado terminado. Cadena
@ Hora healthStatusUpdated Hora a la que el estado de salud se actualizó la última vez. DateTime
hostname El nombre de host del cliente que recogió el intento de tarea. Cadena
@lastDeactivatedTime La hora a la que este objeto se desactivó la última vez. DateTime
@ latestCompletedRun Hora Hora de la última ejecución para la que se completó la ejecución. DateTime
@latestRunTime Hora de la última ejecución para la que se programó la ejecución. DateTime
@nextRunTime Hora de ejecución que se va a programar a continuación. DateTime
reportProgressTime La hora más reciente a la que la actividad remota notificó algún progreso. DateTime
@scheduledEndTime Hora de finalización programada para el objeto. DateTime
@scheduledStartTime Hora de comienzo programada para el objeto. DateTime
@status El estado de este objeto. Cadena
@version Versión de la canalización con la que se creó el objeto. Cadena
@waitingOn Descripción de la lista de dependencias de la que este objeto está a la espera. Objeto de referencia, por ejemplo, "waitingOn«: {" ref»:» myRunnableObject Id "}

Campos del sistema Descripción Tipo de slot
@error Error al describir el objeto mal estructurado. Cadena
@pipelineId ID de la canalización a la que pertenece este objeto. Cadena
@sphere La esfera de un objeto denota su lugar en el ciclo de vida: los objetos de componente dan lugar a objetos de instancia que ejecutan objetos de intento. Cadena

Véase también