Migrez les données d'un environnement Hadoop sur site vers Amazon S3 à l'aide de DistCp with AWS PrivateLink for Amazon S3 - Recommandations AWS

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.

Migrez les données d'un environnement Hadoop sur site vers Amazon S3 à l'aide de DistCp with AWS PrivateLink for Amazon S3

Créé par Jason Owens (AWS), Andres Cantor (AWS), Jeff Klopfenstein (), Bruno Rocha AWS Oliveira () et Samuel Schmidt () AWS AWS

Environnement : Production

Source : Hadoop

Cible : N'importe laquelle

Type R : Replateforme

Charge de travail : Open source

Technologies : stockage et sauvegarde ; analyse

AWSservices : Amazon S3 ; Amazon EMR

Ce modèle montre comment migrer presque n'importe quel volume de données d'un environnement Apache Hadoop sur site vers le cloud Amazon Web Services (AWS) en utilisant l'outil open source Apache DistCppour AWS PrivateLink Amazon Simple Storage Service (Amazon S3). Au lieu d'utiliser l'Internet public ou une solution proxy pour migrer les données, vous pouvez utiliser Amazon S3 AWS PrivateLink pour migrer les données vers Amazon S3 via une connexion réseau privée entre votre centre de données sur site et un Amazon Virtual Private Cloud (AmazonVPC). Si vous utilisez des DNS entrées dans Amazon Route 53 ou si vous ajoutez des entrées dans le fichier /etc/hosts dans tous les nœuds de votre cluster Hadoop sur site, vous êtes automatiquement dirigé vers le point de terminaison d'interface approprié.

Ce guide fournit des instructions d'utilisation DistCp pour migrer des données vers le AWS cloud. DistCp est l'outil le plus couramment utilisé, mais d'autres outils de migration sont disponibles. Par exemple, vous pouvez utiliser des AWS outils hors ligne tels que AWSSnowball ou AWSSnowmobile, ou des outils en ligne tels que AWS Storage Gateway AWS ou. AWS DataSync De plus, vous pouvez utiliser d'autres outils open source tels qu'Apache NiFi.

Prérequis

  • Un AWS compte actif avec une connexion réseau privée entre votre centre de données sur site et le cloud AWS

  • Hadoop, installé sur site avec DistCp

  • Un utilisateur Hadoop ayant accès aux données de migration dans le système de fichiers distribué Hadoop () HDFS

  • AWSInterface de ligne de commande (AWSCLI), installée et configurée

  • Autorisations pour placer des objets dans un compartiment S3

Limites

Les limites du cloud privé virtuel (VPC) s'appliquent AWS PrivateLink à Amazon S3. Pour plus d'informations, consultez Propriétés, limites et AWS PrivateLink quotas des points de terminaison de l'interface (AWS PrivateLink documentation).

AWS PrivateLink pour Amazon S3 ne prend pas en charge les éléments suivants :

Pile technologique source

  • Cluster Hadoop avec installation DistCp

Pile technologique cible

  • Amazon S3

  • Amazon VPC

Architecture cible

Cluster Hadoop qui DistCp copie les données de l'environnement sur site via Direct Connect vers S3.

Le schéma montre comment l'administrateur Hadoop copie des DistCp données depuis un environnement sur site via une connexion réseau privée, telle que Direct AWS Connect, vers Amazon S3 via un point de terminaison d'interface Amazon S3.

AWSservices

  • AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

  • Amazon Virtual Private Cloud (AmazonVPC) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages de l'utilisation de l'infrastructure évolutive deAWS.

Autres outils

  • Apache Hadoop DistCp (copie distribuée) est un outil utilisé pour copier de grands inter-clusters et intra-clusters. DistCp utilise Apache MapReduce pour la distribution, la gestion des erreurs et la restauration, ainsi que pour les rapports.

TâcheDescriptionCompétences requises

Créez un point de terminaison AWS PrivateLink pour Amazon S3.

  1. Connectez-vous à la console AWS de gestion et ouvrez la VPCconsole Amazon.

  2. Dans le volet de navigation, choisissez Endpoints, puis Create Endpoint.

  3. Pour Service category (Catégorie de service), choisissez Services AWS.

  4. Dans la zone de recherche, entrez s3, puis appuyez sur Entrée.

  5. Dans les résultats de recherche, sélectionnez com.amazonaws. < your-aws-region >Nom du service .s3 où la valeur de la colonne Type est Interface.

  6. Pour VPC, choisissez votreVPC. Pour les sous-réseaux, choisissez vos sous-réseaux.

  7. Pour Groupe de sécurité, choisissez ou créez un groupe de sécurité qui autorise TCP 443.

  8. Ajoutez des balises en fonction de vos besoins, puis choisissez Create endpoint.

AWSadministrateur

Vérifiez les points de terminaison et recherchez les DNS entrées.

  1. Ouvrez la VPCconsole Amazon, choisissez Endpoints, puis sélectionnez le point de terminaison que vous avez créé précédemment.

  2. Dans l'onglet Détails, recherchez la première DNS entrée pour les DNSnoms. Il s'agit de l'DNSentrée régionale. Lorsque vous utilisez ce DNS nom, les demandes alternent entre des DNS entrées spécifiques aux zones de disponibilité.

  3. Choisissez l'onglet Sous-réseaux. Vous pouvez trouver l'adresse de l'interface elastic network du point de terminaison dans chaque zone de disponibilité.

AWSadministrateur

Vérifiez les règles de pare-feu et les configurations de routage.

Pour vérifier que les règles de votre pare-feu sont ouvertes et que votre configuration réseau est correctement configurée, utilisez Telnet pour tester le point de terminaison sur le port 443. Par exemple :

$ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443 Trying 10.104.88.6... Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com. ... $ telnet vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com 443 Trying 10.104.71.141... Connected to vpce-<your-VPC-endpoint-ID>.s3.us-east-2.vpce.amazonaws.com.

Remarque : si vous utilisez l'entrée Regional, un test réussi montre qu'il DNS y a alternance entre les deux adresses IP que vous pouvez voir dans l'onglet Sous-réseaux pour le point de terminaison sélectionné dans la VPC console Amazon.

Administrateur réseau, AWS administrateur

Configurez la résolution du nom.

Vous devez configurer la résolution des noms pour permettre à Hadoop d'accéder au point de terminaison de l'interface Amazon S3. Vous ne pouvez pas utiliser le nom du point de terminaison lui-même. Au lieu de cela, vous devez résoudre <your-bucket-name>.s3.<your-aws-region>.amazonaws.com ou*.s3.<your-aws-region>.amazonaws.com. Pour plus d'informations sur cette limitation de dénomination, consultez Présentation du client Hadoop S3A (site Web Hadoop).

Choisissez l'une des options de configuration suivantes :

  • Utilisez la solution sur site DNS pour résoudre l'adresse IP privée du point de terminaison. Vous pouvez modifier le comportement de tous les compartiments ou de certains compartiments. Pour plus d'informations, consultez « Option 2 : accéder à Amazon S3 à l'aide des zones de politique de réponse du système de noms de domaine (DNSRPZ) » dans Accès hybride sécurisé à Amazon S3 à l'aide de AWS PrivateLink (article de AWS blog).

  • Configurez sur site DNS pour transférer le trafic de manière conditionnelle vers les points de terminaison entrants du résolveur dans le. VPC Le trafic est redirigé vers la Route 53. Pour plus d'informations, consultez « Option 3 : transfert des DNS demandes depuis le site à l'aide des points de terminaison entrants Amazon Route 53 Resolver » dans Accès hybride sécurisé à Amazon S3 à l'aide de AWS PrivateLink (AWSarticle de blog).

  • Modifiez le fichier /etc/hosts sur tous les nœuds de votre cluster Hadoop. Il s'agit d'une solution temporaire pour les tests et elle n'est pas recommandée pour la production. Pour modifier le fichier /etc/hosts, ajoutez une entrée pour ou. <your-bucket-name>.s3.<your-aws-region>.amazonaws.com s3.<your-aws-region>.amazonaws.com Le fichier /etc/hosts ne peut pas avoir plusieurs adresses IP pour une entrée. Vous devez choisir une adresse IP unique dans l'une des zones de disponibilité, qui devient alors un point de défaillance unique.

AWSadministrateur

Configurez l'authentification pour Amazon S3.

Pour vous authentifier auprès d'Amazon S3 via Hadoop, nous vous recommandons d'exporter les informations d'identification de rôle temporaires vers l'environnement Hadoop. Pour plus d'informations, consultez Authentification avec S3 (site Web Hadoop). Pour les tâches de longue durée, vous pouvez créer un utilisateur et attribuer une politique autorisant à placer des données uniquement dans un compartiment S3. La clé d'accès et la clé secrète peuvent être stockées sur Hadoop, accessibles uniquement au DistCp job lui-même et à l'administrateur Hadoop. Pour plus d'informations sur le stockage des secrets, consultez Stockage des secrets avec les fournisseurs d'informations d'identification Hadoop (site Web Hadoop). Pour plus d'informations sur les autres méthodes d'authentification, consultez Comment obtenir les informations d'identification d'un IAM rôle à utiliser pour CLI accéder à un AWS compte dans la documentation AWS IAM d'Identity Center (successeur de Single Sign-On). AWS

Pour utiliser des informations d'identification temporaires, ajoutez-les à votre fichier d'informations d'identification ou exécutez les commandes suivantes pour exporter les informations d'identification vers votre environnement :

export AWS_SESSION_TOKEN=SECRET-SESSION-TOKEN export AWS_ACCESS_KEY_ID=SESSION-ACCESS-KEY export AWS_SECRET_ACCESS_KEY=SESSION-SECRET-KEY

Si vous utilisez une combinaison classique de clé d'accès et de clé secrète, exécutez les commandes suivantes :

export AWS_ACCESS_KEY_ID=my.aws.key export AWS_SECRET_ACCESS_KEY=my.secret.key

Remarque : Si vous utilisez une combinaison de clé d'accès et de clé secrète, remplacez le fournisseur d'informations d'identification dans les DistCp commandes par "org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider""org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider".

AWSadministrateur

Transférez des données en utilisant DistCp.

Pour DistCp transférer des données, exécutez les commandes suivantes :

hadoop distcp -Dfs.s3a.aws.credentials.provider=\ "org.apache.hadoop.fs.s3a.TemporaryAWSCredentialsProvider" \ -Dfs.s3a.access.key="${AWS_ACCESS_KEY_ID}" \ -Dfs.s3a.secret.key="${AWS_SECRET_ACCESS_KEY}" \ -Dfs.s3a.session.token="${AWS_SESSION_TOKEN}" \ -Dfs.s3a.path.style.access=true \ -Dfs.s3a.connection.ssl.enabled=true \ -Dfs.s3a.endpoint=s3.<your-aws-region>.amazonaws.com \ hdfs:///user/root/ s3a://<your-bucket-name>

Remarque : La AWS région du point de terminaison n'est pas automatiquement découverte lorsque vous utilisez la DistCp commande with AWS PrivateLink pour Amazon S3. Hadoop 3.3.2 et les versions ultérieures résolvent ce problème en activant l'option permettant de définir explicitement la AWS région du compartiment S3. Pour plus d'informations, consultez S3A pour ajouter l'option fs.s3a.endpoint.region pour définir la région (site Web Hadoop). AWS

Pour plus d'informations sur les fournisseurs S3A supplémentaires, consultez Configuration générale du client S3A (site Web Hadoop). Par exemple, si vous utilisez le chiffrement, vous pouvez ajouter l'option suivante à la série de commandes ci-dessus en fonction de votre type de chiffrement :

-Dfs.s3a.server-side-encryption-algorithm=AES-256 [or SSE-C or SSE-KMS]

Remarque : Pour utiliser le point de terminaison de l'interface avec S3A, vous devez créer une entrée d'DNSalias pour le nom régional S3 (par exemple,s3.<your-aws-region>.amazonaws.com) du point de terminaison de l'interface. Consultez la section Configurer l'authentification pour Amazon S3 pour obtenir des instructions. Cette solution de contournement est requise pour Hadoop 3.3.2 et les versions antérieures. Les futures versions de S3A ne nécessiteront pas cette solution de contournement.

Si vous rencontrez des problèmes de signature avec Amazon S3, ajoutez une option permettant d'utiliser la signature Signature Version 4 (Sigv4) :

-Dmapreduce.map.java.opts="-Dcom.amazonaws.services.s3.enableV4=true"
Ingénieur de migration, AWS administrateur