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.
Chargement de données vers Amazon S3
Pour plus d'informations sur la manière de charger des objets sur Amazon S3, consultez la section Ajout d'un objet à votre compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service. Pour plus d'informations sur l'utilisation d'Amazon S3 avec Hadoop, consultez http://wiki.apache.org/hadoop/AmazonS3
Rubriques
Création et configuration d'un compartiment Amazon S3
Amazon EMR utilise le AWS SDK for Java avec Amazon S3 pour stocker les données d'entrée, les fichiers journaux et les données de sortie. Amazon S3 fait référence à ces emplacements de stockage en tant que compartiments. Les compartiments sont soumis à certaines restrictions et limitations afin de se conformer à Amazon S3 et à ses DNS exigences. Pour de plus amples informations, consultez Limites et restrictions applicables aux compartiments dans le Guide de l'utilisateur Amazon Simple Storage Service.
Cette section explique comment utiliser Amazon S3 AWS Management Console pour créer puis définir des autorisations pour un compartiment Amazon S3. Vous pouvez également créer et définir des autorisations pour un compartiment Amazon S3 à l'aide d'Amazon S3 API ou AWS CLI. Vous pouvez aussi utiliser curl avec une modification pour transmettre les paramètres d'authentification appropriés pour Amazon S3.
Consultez les ressources suivantes :
-
Pour créer un compartiment à l'aide de la console, consultez Création d'un compartiment dans le Guide de l'utilisateur Amazon S3.
-
Pour créer et utiliser des compartiments à l'aide du AWS CLI, consultez la section Utilisation de commandes S3 de haut niveau AWS Command Line Interface dans le guide de l'utilisateur Amazon S3.
-
Pour créer un bucket à l'aide d'unSDK, consultez la section Exemples de création d'un bucket dans le guide de l'utilisateur d'Amazon Simple Storage Service.
-
Pour utiliser des compartiments à l'aide de curl, consultez Outil d'authentification Amazon S3 pour curl
. -
Pour plus d'informations sur la spécification de compartiments spécifiques à une région, consultez la section Accès à un compartiment dans le Guide de l'utilisateur Amazon Simple Storage Service.
-
Pour utiliser des compartiments utilisant des points d'accès Amazon S3, consultez la section Utilisation d'un alias de type compartiment pour votre point d'accès dans le Guide de l'utilisateur Amazon S3. Vous pouvez facilement utiliser les points d'accès Amazon S3 avec l'alias du point d'accès Amazon S3 au lieu du nom du compartiment Amazon S3. Vous pouvez utiliser l'alias du point d'accès Amazon S3 pour les applications existantes et nouvelles, notamment Spark, Hive, Presto et d'autres.
Note
Si vous activez la journalisation pour un compartiment, cela active uniquement les journaux d'accès au compartiment, et non les journaux EMR du cluster Amazon.
Pendant ou après la création du compartiment, vous pouvez définir les autorisations appropriées pour accéder au compartiment en fonction de votre application. Habituellement, vous (le propriétaire) vous donnez accès en lecture et en écriture et accordez l'accès en lecture aux utilisateurs authentifiés.
Les compartiments Amazon S3 requis doivent avoir été créés pour que vous puissiez créer un cluster. Vous devez charger les scripts obligatoires ou les données référencées dans le cluster vers Amazon S3. Le tableau suivant décrit des exemples de données, de scripts et d'emplacements de fichier journal.
Configuration d'un chargement partitionné pour Amazon S3
Amazon EMR prend en charge le téléchargement partitionné d'Amazon S3 via le AWS SDK pour Java. Le téléchargement partitionné vous permet de charger un objet unique sous la forme d'un ensemble de parties. Vous pouvez charger ces parties d'objet indépendamment et dans n'importe quel ordre. Si le transfert d'une partie échoue, vous pouvez la retransférer sans affecter les autres. Une fois toutes les parties de l'objet chargées, Amazon S3 les assemble et crée l'objet.
Pour plus d'informations, consultez la section Présentation de chargement partitionné dans le Guide de l'utilisateur Amazon Simple Storage Service.
En outre, Amazon EMR propose des propriétés qui vous permettent de contrôler plus précisément le nettoyage des parties ayant échoué lors d'un chargement partitionné.
Le tableau suivant décrit les propriétés de EMR configuration Amazon pour le téléchargement partitionné. Vous pouvez configurer ces éléments à l’aide de la classification de configuration core-site
. Pour plus d'informations, consultez la section Configurer les applications dans le Amazon EMR Release Guide.
Nom de paramètre de configuration | Valeur par défaut | Description |
---|---|---|
fs.s3n.multipart.uploads.enabled |
true |
Type booléen qui indique s'il convient d'activer les chargements partitionnés. Lorsque l'affichage EMRFS cohérent est activé, les téléchargements partitionnés sont activés par défaut et la définition de cette valeur sur false est ignorée. |
fs.s3n.multipart.uploads.split.size |
134217728 |
Spécifie la taille maximale d'une partie, en octets, avant de EMRFS démarrer un nouveau téléchargement partiel lorsque les téléchargements partitionnés sont activés. La valeur minimale est Si le chiffrement EMRFS côté client est désactivé et que le Amazon S3 Optimized Committer est également désactivé, cette valeur contrôle également la taille maximale qu'un fichier de données peut augmenter jusqu'à ce qu'il EMRFS utilise des téléchargements partitionnés plutôt qu'une |
fs.s3n.ssl.enabled |
true |
Type booléen qui indique s'il convient d'utiliser http ou https. |
fs.s3.buckets.create.enabled |
false |
Un type booléen qui indique si un compartiment devrait être créé s'il n'existe pas. Le réglage de false entraîne une exception aux opérations CreateBucket . |
fs.s3.multipart.clean.enabled |
false |
Type booléen qui indique s'il convient d'activer le nettoyage périodique en arrière plan des chargements partitionnés inachevés. |
fs.s3.multipart.clean.age.threshold |
604800 |
Un type long qui spécifie l'âge minimal d'un chargement partitionné, en secondes, avant qu'il ne soit affecté à un nettoyage. La valeur par défaut est une semaine. |
fs.s3.multipart.clean.jitter.max |
10000 |
Un type de nombre entier qui spécifie la quantité maximale de délai de sautillement aléatoire en secondes ajouté au délai de 15 minutes fixe avant de programmer le prochain nettoyage. |
Désactivation des chargements partitionnés
Bonnes pratiques
Les recommandations suivantes concernent l'utilisation des compartiments Amazon S3 avec des EMR clusters.
Activation de la gestion des versions
La gestion des versions est une configuration recommandée pour votre compartiment Amazon S3. En activant la gestion des versions, vous vous assurez que si des données sont supprimées ou remplacées accidentellement, elles peuvent être récupérées. Pour plus d'informations, consultez Utilisation de la gestion des versions dans le Guide de l'utilisateur Amazon Simple Storage Service.
Nettoyer les chargements partitionnés échoués
EMRles composants du cluster utilisent des téléchargements partitionnés via Java avec Amazon S3 AWS SDK APIs pour écrire des fichiers journaux et générer des données vers Amazon S3 par défaut. Pour plus d'informations sur la modification des propriétés liées à cette configuration à l'aide d'AmazonEMR, consultezConfiguration d'un chargement partitionné pour Amazon S3. Parfois, le chargement d'un fichier volumineux peut se traduire par un chargement partitionné Amazon S3 incomplet. Lorsqu'un téléchargement partitionné ne peut pas se terminer avec succès, le téléchargement partitionné en cours continue d'occuper votre compartiment et entraîne des frais de stockage. Pour éviter un stockage excessif de fichiers, nous vous recommandons les options suivantes :
-
Pour les buckets que vous utilisez avec AmazonEMR, utilisez une règle de configuration du cycle de vie dans Amazon S3 pour supprimer les téléchargements partitionnés incomplets trois jours après la date de début du téléchargement. Les règles de configuration de cycle de vie vous permettent de contrôler la classe de stockage et la durée de vie de vos objets. Pour plus d'informations, consultez Gestion du cycle de vie de l'objet et Interruption de chargements partitionnés inachevés à l'aide de la stratégie de cycle de vie de compartiment.
-
Activez la fonctionnalité EMR de nettoyage en plusieurs parties d'Amazon en définissant
fs.s3.multipart.clean.enabled
true
et en ajustant d'autres paramètres de nettoyage. Cette fonctionnalité est utile à haut volume, grande échelle et avec des clusters dotés d'une disponibilité limitée. Dans ce cas, le paramètreDaysAfterIntitiation
d'une règle de configuration du cycle de vie peut être trop long, même s'il est défini à son minimum, ce qui provoque des pics de stockage sur Amazon S3. Le nettoyage EMR en plusieurs parties d'Amazon permet un contrôle plus précis. Pour de plus amples informations, veuillez consulter Configuration d'un chargement partitionné pour Amazon S3.
Gérer les repères de versions
Nous vous recommandons d'activer une règle de configuration du cycle de vie dans Amazon S3 afin de supprimer les marqueurs de suppression d'objets expirés pour les compartiments versionnés que vous utilisez avec Amazon. EMR Lorsque vous supprimez un objet dans un compartiment dont les versions sont gérées, un marqueur de suppression est créé. Si toutes les versions précédentes de l'objet expirent par la suite, un marqueur de suppression d'objet expiré est conservé dans le compartiment. Bien que les marqueurs de suppression ne vous soient pas facturés, la suppression de marqueurs expirés peut améliorer les performances des LIST demandes. Pour plus d'informations, consultez la section Configuration du cycle de vie d'un compartiment avec la gestion des versions dans le Guide de l'utilisateur Amazon Simple Storage Service.
Bonnes pratiques en matière de performances
En fonction de vos charges de travail, des types spécifiques d'utilisation des EMR clusters et des applications sur ces clusters peuvent entraîner un nombre élevé de demandes adressées à un bucket. Pour plus d'informations, consultez Considérations en matière de débit de demandes et de performances dans le Guide de l'utilisateur Amazon Simple Storage Service.