

AWS Data Pipeline n'est plus disponible pour les nouveaux clients. Les clients existants de AWS Data Pipeline peuvent continuer à utiliser le service normalement. [En savoir plus](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Travailler avec Task Runner
<a name="dp-using-task-runner"></a>

 Task Runner est une application d'agent de tâches qui interroge AWS Data Pipeline les tâches planifiées et les exécute sur des instances Amazon EC2, des clusters Amazon EMR ou d'autres ressources informatiques, en signalant l'état de ces tâches. Selon votre application, vous pouvez choisir d'effectuer les actions suivantes : 
+ Permet AWS Data Pipeline d'installer et de gérer une ou plusieurs applications Task Runner pour vous. Lorsqu'un pipeline est activé, la valeur par défaut `Ec2Instance` ou `EmrCluster` l'objet référencé par un champ RunSon d'activité est automatiquement créé. AWS Data Pipeline se charge d'installer Task Runner sur une instance EC2 ou sur le nœud principal d'un cluster EMR. Dans ce modèle, AWS Data Pipeline vous pouvez effectuer la majeure partie de la gestion des instances ou des clusters à votre place. 
+ Exécuter tout ou partie d'un pipeline sur des ressources que vous gérez. Les ressources potentielles incluent une instance Amazon EC2 de longue durée, un cluster Amazon EMR ou un serveur physique. Vous pouvez installer un lanceur de tâches (qui peut être soit un lanceur de tâches soit un agent de tâches personnalisé de votre propre chef) presque n'importe où, à condition qu'il puisse communiquer avec le service AWS Data Pipeline Web. Dans ce modèle, vous assumez le contrôle quasi total des ressources utilisées et de la façon dont elles sont gérées, et vous devez installer et configurer manuellement Task Runner. Pour ce faire, utilisez les procédures de cette section, décrites dans [Exécution de travaux sur des ressources existantes à l'aide de Task Runner](dp-how-task-runner-user-managed.md). 

# Task Runner sur les AWS Data Pipeline ressources gérées
<a name="dp-how-task-runner-dp-managed"></a>

 Lorsqu'une ressource est lancée et gérée par AWS Data Pipeline, le service Web installe automatiquement Task Runner sur cette ressource pour traiter les tâches du pipeline. Vous spécifiez une ressource de calcul (une instance Amazon EC2 ou un cluster Amazon EMR) pour `runsOn` le champ d'un objet d'activité. Lors du AWS Data Pipeline lancement de cette ressource, il installe Task Runner sur cette ressource et le configure pour traiter tous les objets d'activité dont `runsOn` le champ est défini sur cette ressource. Lorsque AWS Data Pipeline la ressource est interrompue, les journaux de Task Runner sont publiés sur un site Amazon S3 avant son arrêt.

![\[Cycle de vie du lanceur de tâches sur une AWS Data Pipeline ressource gérée\]](http://docs.aws.amazon.com/fr_fr/datapipeline/latest/DeveloperGuide/images/dp-task-runner-managed-emr-jobflow.png)


 Supposons par exemple, que vous utilisez l'activité `EmrActivity` dans un pipeline et spécifiez une ressource `EmrCluster` dans le champ `runsOn`. Lorsqu'il AWS Data Pipeline traite cette activité, il lance un cluster Amazon EMR et installe Task Runner sur le nœud principal. Ce lanceur de tâches traite ensuite les tâches pour les activités dont `runsOn` le champ est défini sur cet `EmrCluster` objet. L'extrait suivant d'une définition de pipeline montre la relation entre les deux objets. 

```
{
  "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"
}
```

Pour plus d'informations et des exemples d'exécution de cette activité, consultez [EmrActivity](dp-object-emractivity.md).

 Si vous avez plusieurs ressources AWS Data Pipeline gérées dans un pipeline, Task Runner est installé sur chacune d'entre elles, et elles interrogent toutes AWS Data Pipeline les tâches à traiter. 

# Exécution de travaux sur des ressources existantes à l'aide de Task Runner
<a name="dp-how-task-runner-user-managed"></a>

Vous pouvez installer Task Runner sur les ressources informatiques que vous gérez, telles qu'une instance Amazon EC2, un serveur physique ou un poste de travail. Task Runner peut être installé n'importe où, sur n'importe quel matériel ou système d'exploitation compatible, à condition qu'il puisse communiquer avec le service AWS Data Pipeline Web.

Cette approche peut être utile lorsque, par exemple, vous souhaitez AWS Data Pipeline traiter des données stockées dans le pare-feu de votre entreprise. En installant Task Runner sur un serveur du réseau local, vous pouvez accéder à la base de données locale en toute sécurité, puis AWS Data Pipeline demander la prochaine tâche à exécuter. Lorsque le traitement est AWS Data Pipeline terminé ou que le pipeline est supprimé, l'instance Task Runner continue de fonctionner sur votre ressource de calcul jusqu'à ce que vous l'arrêtiez manuellement. Les journaux de Task Runner sont conservés une fois l'exécution du pipeline terminée. 

Pour utiliser Task Runner sur une ressource que vous gérez, vous devez d'abord télécharger Task Runner, puis l'installer sur votre ressource de calcul, en suivant les procédures décrites dans cette section. 

**Note**  
 Vous ne pouvez installer Task Runner que sous Linux, UNIX ou macOS. Task Runner n'est pas compatible avec le système d'exploitation Windows.   
Pour utiliser Task Runner 2.0, la version minimale de Java requise est 1.7.

Pour connecter un Task Runner que vous avez installé aux activités du pipeline qu'il doit traiter, ajoutez un `workerGroup` champ à l'objet et configurez Task Runner pour qu'il interroge cette valeur de groupe de travail. Pour ce faire, transmettez la chaîne du groupe de travail en tant que paramètre (par exemple,`--workerGroup=wg-12345`) lorsque vous exécutez le fichier JAR de Task Runner. 

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


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

## Installation de Task Runner
<a name="dp-installing-taskrunner"></a>

Cette section explique comment installer et configurer Task Runner et ses prérequis. L'installation est un processus manuel simple.

**Pour installer Task Runner**

1. Task Runner nécessite les versions 1.6 ou 1.8 de Java. Pour déterminer si Java est installé et la version qui est en cours d'exécution, utilisez la commande suivante :

   ```
   java -version
   ```

    Si Java 1.6 ou 1.8 n'est pas installé sur votre ordinateur, téléchargez l'une de ces versions sur [http://www.oracle. com/technetwork/java/index.html](http://www.oracle.com/technetwork/java/index.html). Téléchargez et installez Java, puis passez à l'étape suivante.

1. Téléchargez-le `TaskRunner-1.0.jar` depuis [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), puis copiez-le dans un dossier de la ressource informatique cible. Pour les clusters Amazon EMR exécutant `EmrActivity` des tâches, installez Task Runner sur le nœud principal du cluster.

1. Lorsque vous utilisez Task Runner pour se connecter au service AWS Data Pipeline Web afin de traiter vos commandes, les utilisateurs ont besoin d'un accès programmatique à un rôle autorisé à créer ou à gérer des pipelines de données. Pour de plus amples informations, veuillez consulter [Accorder un accès par programmation](dp-get-setup.md#dp-grant-programmatic-access).

1. Task Runner se connecte au service AWS Data Pipeline Web via HTTPS. Si vous utilisez une AWS ressource, assurez-vous que le protocole HTTPS est activé dans la table de routage et l'ACL de sous-réseau appropriées. Si vous utilisez un pare-feu ou un proxy, assurez-vous que le port 443 est ouvert.

# (Facultatif) Octroi de l'accès à Amazon RDS à Task Runner
<a name="dp-taskrunner-rdssecurity"></a>

Amazon RDS vous permet de contrôler l'accès à vos instances de base de données à l'aide de groupes de sécurité de base de données (groupes de sécurité de base de données). Un Security Group DB agit comme un pare-feu contrôlant l'accès du réseau à votre instance de base de données. Par défaut, l'accès réseau est désactivé pour vos instances de base de données. Vous devez modifier vos groupes de sécurité de base de données pour permettre à Task Runner d'accéder à vos instances Amazon RDS. Task Runner obtient l'accès à Amazon RDS à partir de l'instance sur laquelle il s'exécute. Les comptes et les groupes de sécurité que vous ajoutez à votre instance Amazon RDS dépendent donc de l'endroit où vous installez Task Runner. 

**Pour accorder l'accès à Task Runner dans EC2-Classic**

1. Ouvrez la console Amazon RDS.

1. Dans le volet de navigation, choisissez **Instances **, puis sélectionnez votre instance de base de données.

1. Sous **Sécurité et réseau**, sélectionnez le groupe de sécurité, qui ouvre la page **Groupes de sécurité** dans laquelle ce groupe de sécurité de base de données est sélectionné. Sélectionnez l'icône de détails du groupe de sécurité de base de données.

1. Sous **Informations concernant le groupe de sécurité**, créez une règle avec les valeurs appropriées pour **Type de connexion** et **Détails**. Ces champs dépendent de l'endroit où Task Runner est exécuté, comme décrit ici :
   + `Ec2Resource`
     + **Type de connexion** : `EC2 Security Group`

       **Détails** : *my-security-group-name* (nom du groupe de sécurité que vous avez créé pour l'instance EC2)
   + `EmrResource`
     + **Type de connexion** : `EC2 Security Group`

       **Détails**: `ElasticMapReduce-master`
     + **Type de connexion** : `EC2 Security Group`

       **Détails**: `ElasticMapReduce-slave`
   + Votre environnement local (sur site)
     + **Type de connexion** : `CIDR/IP`

       **Détails** : *my-ip-address* (adresse IP de votre ordinateur ou plage d'adresses IP de votre réseau, si votre ordinateur se trouve derrière un pare-feu)

1. Cliquez sur Ajouter.

**Pour accorder l'accès à Task Runner dans EC2-VPC**

1. Ouvrez la console Amazon RDS.

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l'icône de détails de l'instance de base de données. Sous **Sécurité et réseau**, ouvrez le lien vers le groupe de sécurité, qui vous amène à la console Amazon EC2. Si vous utilisez l'ancienne console pour les groupes de sécurité, passez à la nouvelle console en sélectionnant l'icône qui s'affiche en haut de la page de la console.

1. Sous l'onglet **Inbound**, choisissez **Edit**, **Add Rule**. Spécifiez le port de base de données que vous avez utilisé lors du lancement de l'instance de base de données. La source dépend de l'endroit où Task Runner est exécuté, comme décrit ici :
   + `Ec2Resource`
     + *my-security-group-id*(ID du groupe de sécurité que vous avez créé pour l'instance EC2)
   + `EmrResource`
     + *master-security-group-id*(ID du groupe de `ElasticMapReduce-master` sécurité)
     + *slave-security-group-id*(ID du groupe de `ElasticMapReduce-slave` sécurité)
   + Votre environnement local (sur site)
     + *ip-address*(adresse IP de votre ordinateur ou plage d'adresses IP de votre réseau, si votre ordinateur se trouve derrière un pare-feu)

1. Cliquez sur **Sauvegarder**

## Démarrage de Task Runner
<a name="dp-activate-task-runner"></a>

Dans une nouvelle fenêtre d'invite de commande définie sur le répertoire dans lequel vous avez installé Task Runner, lancez Task Runner avec la commande suivante.

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

L'option `--config` pointe vers votre fichier d'informations d'identification.

L'option `--workerGroup` indique le nom de votre groupe de travail, qui doit être identique à la valeur indiquée dans votre pipeline pour les tâches à traiter.

L'option `--region` indique la région du service où les tâches à exécuter doivent être récupérées.

`--logUri`Cette option est utilisée pour transférer vos journaux compressés vers un emplacement dans Amazon S3.

Lorsque Task Runner est actif, il affiche le chemin vers lequel les fichiers journaux sont écrits dans la fenêtre du terminal. Voici un exemple.

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

Task Runner doit être exécuté détaché de votre shell de connexion. Si vous utilisez une application de terminal pour vous connecter à votre ordinateur, vous devrez peut-être utiliser un utilitaire comme nohup ou screen pour empêcher l'application Task Runner de se fermer lorsque vous vous déconnecterez. Pour plus d'informations sur les options de ligne de commande, consultez [Options de configuration de Task Runner](dp-taskrunner-config-options.md).

## Vérifier la journalisation de Task Runner
<a name="dp-verify-task-runner"></a>

Le moyen le plus simple de vérifier que Task Runner fonctionne est de vérifier s'il écrit des fichiers journaux. Task Runner écrit des fichiers journaux horaires dans le répertoire `output/logs` situé sous le répertoire où Task Runner est installé. Le nom du fichier est `Task Runner.log.YYYY-MM-DD-HH`, où HH va de 00 à 23, au format UDT. Pour économiser de l'espace de stockage, tous les fichiers journaux datant de plus de huit heures sont compressés avec GZip.

# Threads et conditions préalables de Task Runner
<a name="dp-taskrunner-threading"></a>

 Task Runner utilise un pool de threads pour chacune des tâches, activités et conditions préalables. Le paramètre par défaut `--tasks` est 2, ce qui signifie que deux threads sont alloués depuis le pool de tâches et que chaque thread interroge le AWS Data Pipeline service pour de nouvelles tâches. Ainsi, `--tasks` est un attribut d'ajustement des performances qui peut être utilisé pour optimiser le débit du pipeline.

 La logique de nouvelle tentative du pipeline pour les conditions préalables se produit dans Task Runner. Deux threads de précondition sont alloués AWS Data Pipeline pour interroger les objets de précondition. Task Runner respecte les champs **RetryDelay** et **PreConditionTimeout des objets de précondition** que vous définissez dans les conditions préalables. 

Dans de nombreux cas, la diminution du délai d'interrogation des conditions préalables et du nombre de nouvelles tentatives contribue à améliorer les performances de votre application. De même, les applications ayant des conditions préalables de longue durée peuvent nécessiter une augmentation des valeurs de délai et de nouvelles tentatives. Pour plus d'informations sur les objets de condition préalable, consultez [Conditions préalables](dp-concepts-preconditions.md).

# Options de configuration de Task Runner
<a name="dp-taskrunner-config-options"></a>

Voici les options de configuration disponibles depuis la ligne de commande lorsque vous lancez Task Runner. 


****  

| Paramètre de ligne de commande | Description | 
| --- | --- | 
| `--help` | Aide de ligne de commande. Exemple : `Java -jar TaskRunner-1.0.jar --help` | 
| `--config` | Chemin et nom de votre fichier `credentials.json`. | 
| `--accessId` | Votre identifiant de clé d' AWS accès que Task Runner doit utiliser lors de vos demandes. Les `--secretKey` options `--accessID` et fournissent une alternative à l'utilisation d'un fichier credentials.json. Si un fichier `credentials.json` est également fourni, les options `--accessID` et `--secretKey` sont prioritaires.  | 
| `--secretKey` | Votre clé AWS secrète à utiliser par Task Runner pour faire des demandes. Pour de plus amples informations, veuillez consulter `--accessID`.  | 
| `--endpoint` | Un point de terminaison est une URL qui est le point d'entrée d'un service Web. Point AWS Data Pipeline de terminaison du service dans la région où vous faites des demandes. Facultatif. En général, il suffit de spécifier une région, et vous n'avez pas besoin de définir le point de terminaison. Pour obtenir la liste des AWS Data Pipeline régions et des points de terminaison, consultez la section [Régions et points de terminaison AWS Data Pipeline](https://docs.aws.amazon.com/general/latest/gr/rande.html#datapipeline_region) dans le. *Références générales AWS* | 
| `--workerGroup` | Nom du groupe de travail pour lequel Task Runner récupère le travail. Obligatoire.Lorsque Task Runner interroge le service Web, il utilise les informations d'identification que vous avez fournies et la valeur de `workerGroup` pour sélectionner les tâches (le cas échéant) à récupérer. Vous pouvez utiliser n'importe quel nom significatif pour vous ; la seule exigence est que la chaîne corresponde entre le Task Runner et ses activités de pipeline correspondantes. Le nom du groupe de travail est lié à une région. Même s'il existe des noms de groupes de travail identiques dans d'autres régions, Task Runner obtient toujours les tâches de la région spécifiée dans`--region`. | 
| `--taskrunnerId` | ID de l'exécuteur de tâches à utiliser pour les rapports d'avancement. Facultatif. | 
| `--output` | Le répertoire Task Runner pour les fichiers de sortie du journal. Facultatif. Les fichiers journaux sont stockés dans un répertoire local jusqu'à ce qu'ils soient transférés vers Amazon S3. Cette option remplace le répertoire par défaut.  | 
| `--region` | Région à utiliser. Facultatif, mais il est recommandé de toujours définir la région. Si vous ne spécifiez pas de région, Task Runner extrait les tâches de la région de service par défaut,`us-east-1`.Les autres régions prises en charge sont : `eu-west-1`, `ap-northeast-1`, `ap-southeast-2`, `us-west-2`.  | 
| `--logUri` | Le chemin de destination Amazon S3 sur lequel Task Runner doit sauvegarder les fichiers journaux toutes les heures. Lorsque Task Runner se termine, les journaux actifs du répertoire local sont transférés vers le dossier de destination Amazon S3.  | 
| --proxyHost | L'hôte du proxy utilisé par les clients Task Runner pour se connecter aux services AWS. | 
| --proxyPort | Port de l'hôte proxy utilisé par les clients Task Runner pour se connecter aux services AWS. | 
| --proxyUsername | Nom d'utilisateur pour le proxy. | 
| --proxyPassword | Mot de passe pour le proxy. | 
| --proxyDomain | Nom de domaine Windows pour le proxy NTLM. | 
| --proxyWorkstation | Nom de poste de travail Windows pour NTLM Proxy. | 

# Utilisation de Task Runner avec un proxy
<a name="dp-taskrunner-proxy"></a>

Si vous utilisez un hôte proxy, vous pouvez spécifier sa [configuration](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-taskrunner-config-options.html) lors de l'appel de Task Runner ou définir la variable d'environnement HTTPS\$1PROXY. La variable d'environnement utilisée avec Task Runner accepte la même configuration que celle utilisée pour l'[interface de ligne de commande AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-http-proxy.html). 

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

Lorsque vous spécifiez un `Ec2Resource` objet pour votre pipeline, vous AWS Data Pipeline créez une instance EC2 à l'aide d'une AMI qui installe et configure Task Runner pour vous. Un type d'instance compatible avec PV est requis dans ce cas. Vous pouvez également créer une AMI personnalisée avec Task Runner, puis spécifier l'ID de cette AMI à l'aide du `imageId` champ de l'`Ec2Resource`objet. Pour de plus amples informations, veuillez consulter [Ec2Resource](dp-object-ec2resource.md).

Une AMI personnalisée doit répondre aux exigences suivantes AWS Data Pipeline pour pouvoir être utilisée correctement par Task Runner :
+ Créez l'AMI dans la région où les instances vont s'exécuter. Pour plus d'informations, consultez la section [Création de votre propre AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami.html) dans le guide de l'*utilisateur Amazon EC2*.
+ Assurez-vous que le type de virtualisation de l'AMI est pris en charge par le type d'instance que vous prévoyez d'utiliser. Par exemple, les types d'instance I2 et G2 exigent une AMI HVM et les types d'instance T1, C1, M1 et M2 exigent une AMI PV. Pour plus d'informations, consultez la section [Types de virtualisation des AMI Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html) dans le guide de l'*utilisateur Amazon EC2*.
+ Installez les logiciels suivants :
  + Linux
  + Bash
  + wget
  + unzip
  + Java 1.6 ou 1.8
  + cloud-init
+ Créez et configurez un utilisateur nommé`ec2-user`.