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.
S3DistCp (s3-dist-cp)
Apache DistCp est un outil open source que vous pouvez utiliser pour copier de grandes quantités de données. S3DistCpest similaire à Amazon S3 DistCp, mais optimisé pour fonctionner avec AWS celui-ci. La commande pour S3DistCp les versions 4.0 et ultérieures d'Amazon EMR ests3-dist-cp, que vous ajoutez en tant qu'étape dans un cluster ou sur la ligne de commande. À l'aide de S3DistCp, vous pouvez copier efficacement de grandes quantités de données d'Amazon S3 vers HDFS, où elles peuvent être traitées par les étapes suivantes dans votre cluster Amazon EMR. Vous pouvez également l'utiliser S3DistCp pour copier des données entre des compartiments Amazon S3 ou de HDFS vers Amazon S3. S3DistCp est plus évolutif et plus efficace pour copier en parallèle un grand nombre d'objets entre des compartiments et AWS des comptes.
Pour des commandes spécifiques démontrant la flexibilité de S3DistCP dans des scénarios réels, consultez Sept conseils d'utilisation S3DistCp
Comme DistCp, S3DistCp utilise MapReduce pour copier de manière distribuée. Il partage les tâches de copie, de gestion des erreurs, de récupération et de création de rapports entre plusieurs serveurs. Pour plus d'informations sur le projet DistCp open source Apache, consultez le DistCp guide de
S'il n' S3DistCp est pas possible de copier tout ou partie des fichiers spécifiés, l'étape de cluster échoue et renvoie un code d'erreur différent de zéro. Dans ce cas, S3DistCp ne nettoie pas les fichiers partiellement copiés.
Important
S3DistCp ne prend pas en charge les noms de compartiment Amazon S3 contenant un caractère de soulignement.
S3DistCp ne prend pas en charge la concaténation pour les fichiers Parquet. Utilisez-le à PySpark la place. Pour plus d'informations, consultez Concaténation de fichiers parquet dans Amazon EMR
Pour éviter les erreurs de copie lorsque vous utilisez S3DistCp pour copier un seul fichier (au lieu d'un répertoire) de S3 vers HDFS, utilisez Amazon EMR version 5.33.0 ou ultérieure, ou Amazon EMR version 6.3.0 ou ultérieure.
S3DistCp options
Bien que similaire à DistCp, S3DistCp prend en charge un ensemble d'options différent pour modifier la façon dont il copie et compresse les données.
Lorsque vous appelez S3DistCp, vous pouvez spécifier les options décrites dans le tableau suivant. Les options sont ajoutées à l'étape à l'aide de la liste d'arguments. Des exemples d' S3DistCp arguments sont présentés dans le tableau suivant.
| Option | Description | Obligatoire |
|---|---|---|
--src=LOCATION
|
Emplacement des données à copier. Cela peut être un emplacement dans HDFS ou Amazon S3. Exemple : ImportantS3DistCp ne prend pas en charge les noms de compartiment Amazon S3 contenant un caractère de soulignement. |
Oui |
--dest=LOCATION
|
Destination des données. Cela peut être un emplacement dans HDFS ou Amazon S3. Exemple : ImportantS3DistCp ne prend pas en charge les noms de compartiment Amazon S3 contenant un caractère de soulignement. |
Oui |
--srcPattern=PATTERN
|
Expression régulière Si l'argument de l'expression régulière contient des caractères spéciaux, tels qu'un astérisque (*), l'expression régulière ou la chaîne Exemple : |
Non |
--groupBy=PATTERN
|
Expression régulière Les parenthèses indiquent comment les fichiers doivent être regroupés, en combinant tous les éléments qui correspondent à l'instruction entre parenthèses en un fichier de sortie unique. Si l'expression régulière n'inclut pas d'instruction entre parenthèses, le cluster échoue à l' S3DistCp étape et renvoie une erreur. Si l'argument de l'expression régulière contient des caractères spéciaux, tels qu'un astérisque (*), l'expression régulière ou la chaîne Lorsque Exemple : |
Non |
--targetSize=SIZE
|
Taille, en mébioctets (Mio), des fichiers à créer en fonction de l'option Si les fichiers concaténés par Exemple : |
Non |
--appendToLastFile |
Spécifie le comportement S3DistCp lors de la copie vers des fichiers d'Amazon S3 vers HDFS qui sont déjà présents. Il ajoute les données des nouveaux fichiers dans les fichiers existants. Si vous utilisez |
Non |
--outputCodec=CODEC
|
Spécifie le codec de compression à utiliser pour les fichiers copiés. Cela peut prendre les valeurs : Exemple : |
Non |
--s3ServerSideEncryption
|
Garantit que les données cibles sont transférées via SSL et cryptées automatiquement dans Amazon S3 à l'aide d'une AWS clé côté service. Lors de la récupération de données à l'aide de S3DistCp, les objets sont automatiquement déchiffrés. Si vous tentez de copier un objet non chiffré vers un compartiment Amazon S3 requérant le chiffrement, l'opération échoue. Pour plus d'informations, consultez Utilisation du chiffrement des données. Exemple : |
Non |
--deleteOnSuccess
|
Si l'opération de copie est réussie, cette option S3DistCp entraîne la suppression des fichiers copiés de l'emplacement source. Cela est utile si vous copiez des fichiers de sortie, tels que les fichiers journaux, d'un emplacement à un autre comme une tâche planifiée, et que vous ne voulez pas copier deux fois les mêmes fichiers. Exemple : |
Non |
--disableMultipartUpload
|
Désactive l'utilisation du téléchargement partitionné. Exemple : |
Non |
--multipartUploadChunkSize=SIZE
|
Taille, en MiB, de chaque partie d'un téléchargement partitionné Amazon S3. S3DistCp utilise le téléchargement partitionné lorsqu'il copie des données dont la Exemple : |
Non |
--numberFiles
|
Ajoute aux fichiers de sortie des numéros séquentiels. Le compteur démarre à 0, à moins qu'une autre valeur soit spécifiée par Exemple : |
Non |
--startingIndex=INDEX
|
Utilisé avec Exemple : |
Non |
--outputManifest=FILENAME
|
Crée un fichier texte, compressé avec Gzip, qui contient une liste de tous les fichiers copiés par S3DistCp. Exemple : |
Non |
--previousManifest=PATH
|
Lit un fichier manifeste créé lors d'un appel précédent à S3DistCp l'utilisation de l' Exemple : |
Non |
--requirePreviousManifest |
Nécessite un manifeste créé précédemment lors d'un appel précédent à S3DistCp. Si la valeur spécifiée est false, aucune erreur n'est générée lorsqu'un manifeste précédent n'est pas spécifié. Par défaut, la valeur est true. |
Non |
--copyFromManifest
|
Inverse le comportement Exemple : |
Non |
--s3Endpoint=ENDPOINT |
Spécifie le point de terminaison Amazon S3 à utiliser lors du chargement d'un fichier. Cette option définit le point de terminaison pour la source et la destination. S'il n'est pas défini, le point de terminaison par défaut est Exemple : |
Non |
--storageClass=CLASS |
La classe de stockage à utiliser lorsque la destination est Amazon S3. Les valeurs valides sont STANDARD et REDUCED_REDUNDANCY. Si cette option n'est pas spécifiée, S3DistCp essaie de préserver la classe de stockage. Exemple : |
Non |
--srcPrefixesFile=PATH |
fichier texte dans Amazon S3 (s3://), HDFS (hdfs:///) ou le système de fichiers local (file:/) qui contient une liste de préfixes S'il Exemple : |
Non |
En plus des options ci-dessus, S3DistCp implémente l'interface Tool,
Ajouter en S3DistCp tant qu'étape dans un cluster
Vous pouvez appeler S3DistCp en l'ajoutant en tant qu'étape dans votre cluster. Il est possible d'ajouter des étapes à un cluster lors de son lancement ou à un cluster en cours d'exécution à l'aide de la console, de l'interface de ligne de commande ou de l'API. Les exemples suivants montrent comment ajouter une S3DistCp étape à un cluster en cours d'exécution. Pour plus d'informations sur l'ajout d'étapes dans un cluster, consultez Soumission de travail à un cluster dans le Guide de gestion d'Amazon EMR.
Pour ajouter une S3DistCp étape à un cluster en cours d'exécution à l'aide du AWS CLI
Pour plus d'informations sur l'utilisation des commandes Amazon EMR dans le AWS CLI, consultez la référence des AWS CLI commandes.
-
Pour ajouter une étape à un cluster qui appelle S3DistCp, transmettez les paramètres qui spécifient comment effectuer S3DistCp l'opération de copie en tant qu'arguments.
L'exemple suivant copie les journaux des démons de Amazon S3 dans
hdfs:///output. Dans la commande suivante :-
--cluster-idspécifie le cluster -
Jarest l'emplacement du fichier S3DistCp JAR. Pour un exemple d'exécution d'une commande sur un cluster à l'aide de command-runner.jar, consultez Soumettre une étape JAR personnalisée pour exécuter un script ou une commande. -
Argsest une liste séparée par des virgules des paires nom-valeur des options à transmettre. S3DistCp Pour obtenir la liste complète des options disponibles, consultez S3DistCp options.
Pour ajouter une étape de S3DistCp copie à un cluster en cours d'exécution, insérez les éléments suivants dans un fichier JSON enregistré dans Amazon S3 ou dans votre système de fichiers local, comme dans cet
exemple. Remplacez-lemyStep.jsonj-3GYXXXXXX9IOKpar votre identifiant de cluster et remplacez-leamzn-s3-demo-bucketpar le nom de votre compartiment Amazon S3.[ { "Name":"S3DistCp step", "Args":["s3-dist-cp","--s3Endpoint=s3.amazonaws.com","--src=s3://amzn-s3-demo-bucket/logs/j-3GYXXXXXX9IOJ/node/","--dest=hdfs:///output","--srcPattern=.*[a-zA-Z,]+"], "ActionOnFailure":"CONTINUE", "Type":"CUSTOM_JAR", "Jar":"command-runner.jar" } ]aws emr add-steps --cluster-idj-3GYXXXXXX9IOK--steps file://./myStep.json -
Exemple Copie des fichiers journaux d'Amazon S3 vers HDFS
Cet exemple illustre également comment copier les fichiers journaux stockés dans un compartiment Amazon S3 vers HDFS en ajoutant une étape à un cluster en cours d'exécution. Dans cet exemple, l'option --srcPattern est utilisée pour limiter les données copiées dans les journaux des démons.
Pour copier les fichiers journaux d'Amazon S3 vers HDFS à l'aide de l'option --srcPattern, placez ce qui suit dans un fichier JSON enregistré dans Amazon S3 ou dans votre système de fichiers local en tant que pour cet exemple. Remplacez-le myStep.jsonj-3GYXXXXXX9IOK par votre identifiant de cluster et remplacez-le amzn-s3-demo-bucket par le nom de votre compartiment Amazon S3.
[ { "Name":"S3DistCp step", "Args":["s3-dist-cp","--s3Endpoint=s3.amazonaws.com","--src=s3://amzn-s3-demo-bucket/logs/j-3GYXXXXXX9IOJ/node/","--dest=hdfs:///output","--srcPattern=.*daemons.*-hadoop-.*"], "ActionOnFailure":"CONTINUE", "Type":"CUSTOM_JAR", "Jar":"command-runner.jar" } ]