Je souhaite copier une grande quantité de données depuis Amazon Simple Storage Service (Amazon S3) vers mon cluster Amazon EMR.
Brève description
Utilisez S3DistCp pour copier les données entre les clusters Amazon S3 et Amazon EMR. S3DistCp est installé sur les clusters Amazon EMR par défaut. Pour appeler S3DistCp, ajoutez-le en tant qu'étape au lancement ou après l'exécution du cluster.
Résolution
Pour ajouter une étape S3DistCp à un cluster en cours d'exécution via l'interface de ligne de commande AWS (AWS CLI), consultez la section Ajouter S3DistCp en tant qu'étape dans un cluster.
Remarque : Si des erreurs surviennent lors de l'exécution de commandes de l'interface de ligne de commande AWS, vérifiez que vous utilisez la version la plus récente de l'AWS CLI.
Pour ajouter une étape S3DistCp à l'aide de la console, procédez comme suit :
1. Ouvrez la console Amazon EMR, puis sélectionnez Clusters.
2. Choisissez le cluster Amazon EMR dans la liste, puis sélectionnez Étapes.
3. Sélectionnez Ajouter une étape, puis choisissez les options suivantes :
Pour Type d’étape, sélectionnez JAR personnalisé.
Pour Nom, saisissez le nom de l'étape S3DistCp.
Pour Emplacement JAR, saisissez command-runner.jar. Pour plus d'informations, consultez la section Exécuter des commandes et des scripts sur un cluster Amazon EMR.
Pour Arguments, saisissez des options similaires aux options suivantes : s3-dist-cp --src=s3://s3distcp-source/input-data --dest=hdfs:///output-folder1.
Pour Action sur échec, sélectionnez Continuer.
4. Sélectionnez Ajouter.
5. Lorsque l'étape Statut passe à Terminé, vérifiez que les fichiers ont été copiés dans le cluster :
$ hadoop fs -ls hdfs:///output-folder1/
Remarque : Il est recommandé d'agréger les petits fichiers en un nombre réduit de fichiers volumineux à l'aide de l'option Grouper par, puis compressez les fichiers volumineux à l’aide de l'option outputCodec.
Résolution des problèmes
Pour résoudre les problèmes liés à S3DistCp, consultez les journaux d’étapes et de tâches.
1. Ouvrez la console Amazon EMR, puis sélectionnez Clusters.
2. Choisissez le cluster EMR dans la liste, puis sélectionnez Étapes.
3. Dans la colonne Fichiers journaux, choisissez le journal d’étapes approprié :
contrôleur : Informations sur le traitement de l'étape. Si votre étape échoue lors du chargement, vous pouvez trouver la trace de la pile dans ce journal.
syslog : Journaux provenant de logiciels autres qu'Amazon, tels qu'Apache et Hadoop.
stderr : Canal d'erreur standard de Hadoop pendant le traitement de l'étape.
stdout : Canal de sortie standard de Hadoop pendant le traitement de l'étape.
Si vous ne trouvez pas la cause racine de l'échec dans les journaux d’étapes, consultez les journaux de tâches S3DistCp :
1. Ouvrez la console Amazon EMR, puis sélectionnez Clusters.
2. Choisissez le cluster EMR dans la liste, puis sélectionnez Étapes.
3. Dans la colonne Fichiers journaux, sélectionnez Afficher les tâches.
4. Dans la colonne Actions, sélectionnez Afficher les tâches.
5. Si des tâches ont échoué, sélectionnez Afficher les tentatives pour consulter les journaux de tâches.
Erreurs courantes
La tâche de l’outil de réduction échoue en raison d'une mémoire insuffisante :
Si un message d'erreur similaire au message suivant s'affiche dans le journal stderr de l'étape, cela signifie que la tâche S3DistCp a échoué car la mémoire était insuffisante pour traiter les tâches de l’outil de réduction :
Container killed on request. Exit code is 143
Container exited with a non-zero exit code 143
Container [pid=19135,containerID=container_1494287247949_0005_01_000003] is running beyond virtual memory limits. Current usage: 569.0 MB of 1.4 GB physical memory used; 3.0 GB of 3.0 GB virtual memory used. Killing container.
Pour résoudre ce problème, utilisez l'une des options suivantes pour augmenter les ressources mémoire destinées aux tâches de l’outil de réduction :
Erreur d'autorisation Amazon S3 :
Si un message d'erreur similaire au message suivant s'affiche dans le journal stderr de l'étape, cela signifie que la tâche S3DistCp n'a pas pu accéder à Amazon S3 en raison d'un problème d'autorisations :
Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: REQUEST_ID
Pour résoudre ce problème, consultez la section Erreurs d'autorisations.
Informations connexes
Afficher les fichiers journaux