

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](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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.

# Operación de Task Runner
<a name="dp-using-task-runner"></a>

 Task Runner es una aplicación de agente de tareas que sondea las AWS Data Pipeline tareas programadas y las ejecuta en instancias de Amazon EC2, clústeres de Amazon EMR u otros recursos computacionales, informando del estado a medida que lo hace. En función de la aplicación, puede elegir: 
+ Permite AWS Data Pipeline instalar y administrar una o más aplicaciones de Task Runner por usted. Cuando se activa una canalización, se crea automáticamente el `EmrCluster` objeto predeterminado `Ec2Instance` o al que hace referencia el campo RunSon de una actividad. AWS Data Pipeline se encarga de instalar Task Runner en una instancia EC2 o en el nodo principal de un clúster EMR. De acuerdo con este patrón, AWS Data Pipeline puede realizar la mayor parte de la administración de instancias o clústeres por usted. 
+ Ejecutar la totalidad o partes de una canalización en recursos que usted administra. Los recursos potenciales incluyen una instancia Amazon EC2 de ejecución prolongada, un clúster de Amazon EMR o un servidor físico. Puedes instalar un ejecutor de tareas (que puede ser un ejecutor de tareas o un agente de tareas personalizado creado por ti mismo) prácticamente en cualquier lugar, siempre que pueda comunicarse con el servicio AWS Data Pipeline web. En este caso, usted asume un control casi completo sobre los recursos que se utilizan y cómo se administran, y debe instalar y configurar manualmente Task Runner. Para ello, utilice los procedimientos de esta sección, tal y como se describe en [Ejecución de trabajo en recursos existentes mediante Task Runner](dp-how-task-runner-user-managed.md). 

# Task Runner sobre recursos AWS Data Pipeline gestionados
<a name="dp-how-task-runner-dp-managed"></a>

 Cuando un recurso es lanzado y administrado por AWS Data Pipeline, el servicio web instala automáticamente Task Runner en ese recurso para procesar las tareas en proceso. Puede especificar un recurso informático (ya sea una instancia Amazon EC2 o un clúster de Amazon EMR) para el campo `runsOn` de un objeto de actividad. Cuando AWS Data Pipeline lanza este recurso, instala Task Runner en dicho recurso y lo configura para procesar todos los objetos de actividad cuyo campo `runsOn` esté establecido en ese recurso. Cuando AWS Data Pipeline finaliza el recurso, los registros de Task Runner se publican en una ubicación de Amazon S3 antes de que se cierre.

![\[El ciclo de vida del ejecutor de tareas en un recurso administrado AWS Data Pipeline\]](http://docs.aws.amazon.com/es_es/datapipeline/latest/DeveloperGuide/images/dp-task-runner-managed-emr-jobflow.png)


 Por ejemplo, si utiliza `EmrActivity` en una canalización y especifica un recurso `EmrCluster` en el campo `runsOn`. Cuando AWS Data Pipeline procesa esa actividad, lanza un clúster de Amazon EMR e instala Task Runner en el nodo principal. A continuación, este Task Runner procesa las tareas de las actividades cuyo campo `runsOn` esté establecido en ese objeto `EmrCluster`. El siguiente fragmento de una definición de canalización muestra esta relación entre los dos objetos. 

```
{
  "id" : "MyEmrActivity",
  "name" : "Work to perform on my data",
  "type" : "EmrActivity",
  "runsOn" : {"ref" : "MyEmrCluster"},
  "preStepCommand" : "scp remoteFiles localFiles",
  "step" : "s3://amzn-s3-demo-bucket/myPath/myStep.jar,firstArg,secondArg",
  "step" : "s3://amzn-s3-demo-bucket/myPath/myOtherStep.jar,anotherArg",
  "postStepCommand" : "scp localFiles remoteFiles",
  "input" : {"ref" : "MyS3Input"},
  "output" : {"ref" : "MyS3Output"}
},
{
  "id" : "MyEmrCluster",
  "name" : "EMR cluster to perform the work",
  "type" : "EmrCluster",
  "hadoopVersion" : "0.20",
  "keypair" : "myKeyPair",
  "masterInstanceType" : "m1.xlarge",
  "coreInstanceType" : "m1.small",
  "coreInstanceCount" : "10",
  "taskInstanceType" : "m1.small",
  "taskInstanceCount": "10",
  "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-hadoop,arg1,arg2,arg3",
  "bootstrapAction" : "s3://elasticmapreduce/libs/ba/configure-other-stuff,arg1,arg2"
}
```

Para obtener información y ejemplos de la ejecución de esta actividad, consulte [EmrActivity](dp-object-emractivity.md).

 Si tiene varios recursos AWS Data Pipeline gestionados en una canalización, Task Runner está instalado en cada uno de ellos y todos ellos consultan las tareas que se van a AWS Data Pipeline procesar. 

# Ejecución de trabajo en recursos existentes mediante Task Runner
<a name="dp-how-task-runner-user-managed"></a>

Puede instalar Task Runner en recursos informáticos que administre como, por ejemplo, una instancia Amazon EC2, o una estación de trabajo o un servidor físicos. Task Runner se puede instalar en cualquier lugar, en cualquier hardware o sistema operativo compatible, siempre que pueda comunicarse con el servicio AWS Data Pipeline web.

Este enfoque puede resultar útil cuando, por ejemplo, desee utilizarlo AWS Data Pipeline para procesar datos almacenados en el firewall de su organización. Al instalar Task Runner en un servidor de la red local, puede acceder a la base de datos local de forma segura y, a continuación, realizar un sondeo AWS Data Pipeline para ver si se ejecuta la siguiente tarea. Cuando AWS Data Pipeline termine de procesar o elimine la canalización, la instancia de Task Runner seguirá ejecutándose en tu recurso computacional hasta que la cierres manualmente. Los registros de Task Runner persisten después de que se haya completado la ejecución de la canalización. 

Para utilizar Task Runner en un recurso que administre, primero debe descargar Task Runner y, a continuación, instalarlo en el recurso informático mediante los procedimientos de esta sección. 

**nota**  
 Solo puede instalar Task Runner en Linux, UNIX o macOS. Task Runner no es compatible con el sistema operativo Windows.   
Para usar Task Runner 2.0, la versión mínima de Java necesaria es 1.7.

Para conectar un Task Runner que haya instalado con las actividades de canalización que debe procesar, añada un campo `workerGroup` al objeto y configure Task Runner para sondear ese valor de grupo de procesos de trabajo. Para ello, transfiera la cadena del grupo de procesos de trabajo en forma de parámetro (por ejemplo, `--workerGroup=wg-12345`) cuando ejecute el archivo JAR de Task Runner. 

![\[AWS Data Pipeline diagram showing monthly task flow for archiving processed invoices using Task Runner.\]](http://docs.aws.amazon.com/es_es/datapipeline/latest/DeveloperGuide/images/dp-task-runner-user-emr-jobflow.png)


```
{
  "id" : "CreateDirectory",
  "type" : "ShellCommandActivity",
  "workerGroup" : "wg-12345",
  "command" : "mkdir new-directory"
}
```

## Instalación de Task Runner
<a name="dp-installing-taskrunner"></a>

En esta sección, se explica cómo instalar y configurar Task Runner y sus requisitos previos. La instalación es un proceso manual sencillo.

**Para instalar Task Runner**

1. Task Runner requiere las versiones de Java 1.6 o 1.8. Para determinar si se encuentra instalado Java y la versión que se está ejecutando, utilice el siguiente comando:

   ```
   java -version
   ```

    Si no tienes Java 1.6 o 1.8 instalado en tu ordenador, descarga una de estas versiones desde [http://www.oracle. com/technetwork/java/index.html](http://www.oracle.com/technetwork/java/index.html). Descargue e instale Java y, a continuación, continúe con el paso siguiente.

1. Descárguelo `TaskRunner-1.0.jar` desde [https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/ software/latest/TaskRunner/TaskRunner -1.0.jar](https://s3.amazonaws.com/datapipeline-us-east-1/us-east-1/software/latest/TaskRunner/TaskRunner-1.0.jar) y, a continuación, cópielo en una carpeta del recurso informático de destino. En los clústeres de Amazon EMR que ejecuten tareas `EmrActivity`, instale Task Runner en el nodo maestro del clúster.

1. Al usar Task Runner para conectarse al servicio AWS Data Pipeline web y procesar los comandos, los usuarios necesitan acceder mediante programación a un rol que tenga permisos para crear o administrar canalizaciones de datos. Para obtener más información, consulte [Concesión de acceso mediante programación](dp-get-setup.md#dp-grant-programmatic-access).

1. Task Runner se conecta al servicio AWS Data Pipeline web mediante HTTPS. Si utiliza un AWS recurso, asegúrese de que HTTPS esté habilitado en la tabla de enrutamiento y en la ACL de subred adecuadas. Si utiliza un firewall o un proxy, asegúrese de que el puerto 443 esté abierto.

# (Opcional) Otorgar a Task Runner acceso a Amazon RDS
<a name="dp-taskrunner-rdssecurity"></a>

Amazon RDS permite controlar el acceso a las instancias de bases de datos mediante grupos de seguridad de base de datos (grupos de seguridad de base de datos). Un grupo de seguridad de base de datos realiza las mismas funciones que un firewall que controla el acceso de red a su instancia de base de datos. De forma predeterminada, el acceso de red está deshabilitado para sus instancias de base de datos. Debe modificar sus grupos de seguridad de base de datos para permitir que Task Runner obtenga acceso a sus instancias de Amazon RDS. Task Runner obtiene acceso a Amazon RDS desde la instancia en la que se ejecuta, por lo que las cuentas y los grupos de seguridad que añada a la instancia de Amazon RDS dependen de dónde instale Task Runner. 

**Para conceder acceso a Task Runner en EC2-Classic**

1. Abra la consola de Amazon RDS.

1. En el panel de navegación, elija **Instances** y seleccione la instancia de base de datos.

1. En **Security and Network** (Seguridad y redes), seleccione el grupo de seguridad, lo cual abre la página **Grupos de seguridad** con este grupo de seguridad de base de datos seleccionado. Seleccione el icono de detalles del grupo de seguridad de base de datos.

1. Bajo **Security Group Details**, cree una regla con los valores adecuados de **Connection Type** y **Details**. Estos campos dependen de dónde se esté ejecutando Task Runner, tal y como se describe aquí:
   + `Ec2Resource`
     + **Connection Type**: `EC2 Security Group`

       **Detalles**: *my-security-group-name* (el nombre del grupo de seguridad que creó para la instancia EC2)
   + `EmrResource`
     + **Connection Type**: `EC2 Security Group`

       **Detalles**: `ElasticMapReduce-master`
     + **Connection Type**: `EC2 Security Group`

       **Detalles**: `ElasticMapReduce-slave`
   + Su entorno local
     + **Connection Type**: `CIDR/IP`:

       **Detalles**: *my-ip-address* (la dirección IP de su computadora o el rango de direcciones IP de su red, si su computadora está protegida por un firewall)

1. Haga clic en Add (Añadir).

**Para conceder acceso a Task Runner en EC2-VPC**

1. Abra la consola de Amazon RDS.

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione el icono de detalles de la instancia de base de datos. En **Seguridad y redes**, abra el enlace al grupo de seguridad, lo que le lleva a la consola de Amazon EC2. Si está utilizando el diseño de consola anterior para los grupos de seguridad, seleccionando el icono que se muestra en la parte superior de la página de la consola para cambiar al nuevo diseño de consola.

1. En la pestaña **Inbound** (Entrada), elija **Edit** (Editar), **Add Rule** (Agregar regla). Especifique el puerto de la base de datos que utilizó al lanzar la instancia de base de datos. El origen depende de dónde se esté ejecutando Task Runner, tal y como se describe aquí:
   + `Ec2Resource`
     + *my-security-group-id*(el ID del grupo de seguridad que creó para la instancia EC2)
   + `EmrResource`
     + *master-security-group-id*(el ID del grupo de `ElasticMapReduce-master` seguridad)
     + *slave-security-group-id*(el ID del grupo `ElasticMapReduce-slave` de seguridad)
   + Su entorno local
     + *ip-address*(la dirección IP de su equipo o el rango de direcciones IP de la red, si el equipo está protegido por un firewall)

1. Haga clic en **Guardar**.

## Iniciar Task Runner
<a name="dp-activate-task-runner"></a>

En una ventana de comandos nueva establecida en el directorio en el que haya instalado Task Runner, inicie Task Runner, con el siguiente comando.

```
java -jar TaskRunner-1.0.jar --config ~/credentials.json --workerGroup=myWorkerGroup --region=MyRegion --logUri=s3://amzn-s3-demo-bucket/foldername
```

La opción `--config` apunta a su archivo de credenciales.

La opción `--workerGroup` especifica el nombre del grupo de procesos de trabajo, que debe ser el mismo valor especificado en la canalización para las tareas que va a procesar.

La opción `--region` especifica la región de servicio desde la que extraer las tareas a ejecutar.

La opción `--logUri` se utiliza para enviar los registros comprimidos a una ubicación en Amazon S3.

Cuando Task Runner está activo, imprime la ruta donde se escriben los archivos de registro en la ventana de terminal. A continuación se muestra un ejemplo.

```
Logging to /Computer_Name/.../output/logs
```

Task Runner se debe ejecutar desconectada del shell de inicio de sesión. Si utiliza un terminal de aplicación para conectarse al equipo, puede que tenga que utilizar una utilidad como nohup o screen para evitar que la aplicación Task Runner se cierre al cerrar la sesión. Para obtener más información acerca de las opciones de línea de comandos, consulte [Opciones de configuración de Task Runner](dp-taskrunner-config-options.md).

## Verificación del registro de Task Runner
<a name="dp-verify-task-runner"></a>

La forma más sencilla de verificar si Task Runner está en funcionamiento es comprobar si está escribiendo archivos de registro. Task Runner escribe archivos de registro cada hora en el directorio, `output/logs`, bajo el directorio donde está instalado Task Runner. El nombre del archivo es `Task Runner.log.YYYY-MM-DD-HH`, donde HH va de 00 a 23, en UDT. Para ahorrar espacio de almacenamiento, los archivos de registro con una antigüedad superior a ocho horas se comprimen con GZip.

# Subprocesos y condiciones previas de Task Runner
<a name="dp-taskrunner-threading"></a>

 Task Runner utiliza un grupo de subprocesos para cada una de las tareas, actividades y condiciones previas. La configuración predeterminada `--tasks` es 2, lo que significa que hay dos subprocesos asignados del grupo de tareas y cada subproceso consulta el AWS Data Pipeline servicio en busca de nuevas tareas. Por lo tanto, `--tasks` es un atributo de ajuste de rendimiento que se puede utilizar para ayudar a optimizar el rendimiento de la canalización.

 En Task Runner se ejecuta la lógica de reintentos de la canalización para condiciones previas. Se asignan dos subprocesos de condiciones previas AWS Data Pipeline para sondear los objetos de condiciones previas. Task Runner respeta los campos **retryDelay** y **preconditionTimeout** de los objetos de condición previa que usted defina. 

En muchos casos, reducir el tiempo de espera de sondeo de condición previa y el número de reintentos sirve para mejorar significativamente el desempeño de la aplicación. Del mismo modo, es posible que las aplicaciones con condiciones previas de ejecución prolongada necesiten que se aumenten los valores de tiempo de espera y reintentos. Para obtener más información acerca de los objetos de condición previa, consulte [Condiciones previas](dp-concepts-preconditions.md).

# Opciones de configuración de Task Runner
<a name="dp-taskrunner-config-options"></a>

Estas son las opciones de configuración disponibles en la línea de comandos cuando se lanza Task Runner. 


****  

| Parámetro de línea de comando | Description (Descripción) | 
| --- | --- | 
| `--help` | Ayuda de la línea de comando. Ejemplo: `Java -jar TaskRunner-1.0.jar --help` | 
| `--config` | Ruta y nombre de archivo del archivo `credentials.json`. | 
| `--accessId` | Su ID de clave de AWS acceso para que Task Runner la utilice al realizar solicitudes. Las opciones `--accessID` y `--secretKey` proporcionan una alternativa al uso de un archivo credentials.json file. Si también se proporciona un archivo `credentials.json`, las opciones `--accessID` y `--secretKey` tienen prioridad.  | 
| `--secretKey` | Tu clave AWS secreta para que Task Runner la utilice al realizar solicitudes. Para obtener más información, consulte `--accessID`.  | 
| `--endpoint` | Un punto de enlace es una URL que es el punto de entrada de un servicio web. El punto final del AWS Data Pipeline servicio en la región en la que realizas las solicitudes. Opcional. En general, es suficiente especificar una región y no es necesario establecer el punto de enlace. Para obtener una lista de AWS Data Pipeline las regiones y puntos de enlace, consulte [Regiones y puntos de enlace de AWS Data Pipeline](https://docs.aws.amazon.com/general/latest/gr/rande.html#datapipeline_region) en. *Referencia general de AWS* | 
| `--workerGroup` | El nombre de un grupo de empleados para los que Task Runner recupera trabajo. Obligatorio.Cuando Task Runner sondea el servicio web, utiliza las credenciales suministradas y el valor de `workerGroup` para seleccionar qué tareas debe recuperar (si procede). Puede utilizar cualquier nombre que sea significativo para usted; el único requisito es que la cadena debe situarse entre Task Runner y las correspondientes actividades de la canalización. El nombre del grupo de procesos de trabajo está vinculado a una región. Aunque haya nombres de grupo de procesos de trabajo idénticos en otras regiones, Task Runner siempre obtiene tareas de la región especificada en `--region`. | 
| `--taskrunnerId` | El ID que utilizará la aplicación de ejecución de tareas para informar del progreso. Opcional. | 
| `--output` | El directorio de Task Runner para el registro de archivos de salida. Opcional. Los archivos de registro se almacenan en un directorio local hasta que se envían a Amazon S3. Esta opción tiene prioridad sobre el directorio predeterminado.  | 
| `--region` | La región de que se va a utilizar. Es opcional, pero se recomienda establecer siempre la región. Si no se especifica la región, Task Runner recupera tareas de la región de servicio predeterminada, `us-east-1`.Otras regiones que se admiten son: `eu-west-1`, `ap-northeast-1`, `ap-southeast-2`, `us-west-2`.  | 
| `--logUri` | La ruta de destino de Amazon S3 en la que Task Runner hará copias de seguridad de los archivos de registro cada hora. Cuando Task Runner termina, los registros activos del directorio local se envían a la carpeta de destino de Amazon S3.  | 
| --proxyHost | El host del proxy que utilizan los clientes de Task Runner para conectarse a los servicios de AWS. | 
| --proxyPort | El puerto del host proxy que utilizan los clientes de Task Runner para conectarse a los servicios de AWS. | 
| --proxyUsername | El nombre de usuario del proxy. | 
| --proxyPassword | Contraseña para el proxy. | 
| --proxyDomain | windowsDomain | 
| --proxyWorkstation | El nombre de estación de trabajo de Windows para el proxy NTLM. | 

# Uso de Task Runner con un Proxy
<a name="dp-taskrunner-proxy"></a>

Si está utilizando un host proxy, puede especificar su [configuración](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-taskrunner-config-options.html) cuando invoque a Task Runner o establecer la variable de entorno, HTTPS\$1PROXY. La variable de entorno utilizada con Task Runner acepta la misma configuración que se utiliza para la [interfaz de línea de comando de AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-http-proxy.html). 

# Task Runner y Custom AMIs
<a name="dp-custom-ami"></a>

Cuando especifica un `Ec2Resource` objeto para su canalización, AWS Data Pipeline crea una instancia EC2 para usted mediante una AMI que instala y configura Task Runner por usted. En este caso, se requiere un tipo de instancia compatible con PV. También puede crear una AMI personalizada con Task Runner y, a continuación, especificar el ID de esta AMI mediante el campo `imageId` del objeto `Ec2Resource`. Para obtener más información, consulte [Ec2Resource](dp-object-ec2resource.md).

Una AMI personalizada debe cumplir los siguientes requisitos AWS Data Pipeline para poder utilizarla correctamente en Task Runner:
+ Crear la AMI en la misma región en la que se ejecutarán las instancias. Para obtener más información, consulte [Creación de su propia AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html) en la *Guía del usuario de Amazon EC2*.
+ Asegurarse de que el tipo de virtualización de la AMI sea compatible con el tipo de instancia que planee utilizar. Por ejemplo, los tipos de instancia I2 y G2 requieren una AMI HVM y los tipos de instancia T1, C1, M1 y M2 requieren una AMI PV. Para obtener más información, consulte [Tipos de virtualización de la AMI de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html) en la *Guía del usuario de Amazon EC2*.
+ Instalar el siguiente software:
  + Linux
  + Bash
  + wget
  + unzip
  + Java 1.6 o 1.8
  + cloud-init
+ Crear y configurar una cuenta de usuario denominada `ec2-user`.