Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Éléments à prendre en compte avec Sqoop sur Amazon EMR - Amazon EMR

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.

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.

Éléments à prendre en compte avec Sqoop sur Amazon EMR

Tenez compte des éléments suivants lorsque vous exécutez Sqoop sur Amazon EMR.

Utilisation de Sqoop avec intégration HCatalog

Sqoop sur Amazon EMR prend en charge l'intégration de Sqoop. HCatalog Lorsque vous utilisez Sqoop pour écrire une sortie dans une HCatalog table dans Amazon S3, désactivez l'écriture directe Amazon EMR en définissant les mapred.output.direct.NativeS3FileSystem propriétés et sur. mapred.output.direct.EmrFileSystem false Pour de plus amples informations, veuillez consulter En utilisant HCatalog. Vous pouvez utiliser les commandes Hadoop -D mapred.output.direct.NativeS3FileSystem=false et -D mapred.output.direct.EmrFileSystem=false. Si vous ne désactivez pas l'écriture directe, aucune erreur ne se produit, mais la table est créée dans Amazon S3 et aucune donnée n'est écrite.

Prise en charge des bases de données et JDBC par Sqoop

Par défaut, Sqoop dispose d'un pilote MariaDB et PostgreSQL installé. Le pilote PostgreSQL installé pour Sqoop fonctionne uniquement pour PostgreSQL 8.4. Pour installer un autre jeu de connecteurs JDBC pour Sqoop, connectez-vous au nœud principal de cluster et installez-les dans /usr/lib/sqoop/lib. Les liens suivants se rapportent à divers connecteurs JDBC :

Les bases de données prises en charge pour Sqoop sont répertoriées à l'adresse suivante, http://sqoop.apache.org/docs/version/SqoopUserGuide.html #_supported_databases, où se version trouve la version de Sqoop que vous utilisez, par exemple 1.4.6. Si la chaîne de connexion JDBC ne correspond pas à celles figurant dans cette liste, vous devez spécifier un pilote.

Par exemple, vous pouvez exporter vers une table de base de données Amazon Redshift avec la commande suivante (pour JDBC 4.1) :

sqoop export --connect jdbc:redshift://$MYREDSHIFTHOST:5439/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver com.amazon.redshift.jdbc41.Driver --username master --password Mymasterpass1

Vous pouvez utiliser les chaînes de connexion MariaDB et MySQL, mais si vous spécifiez la chaîne de connexion MariaDB, vous devez spécifier le pilote :

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password Mymasterpass1

Si vous utilisez un chiffrement SSL (Secure Socket Layer) pour accéder à votre base de données, vous devez utiliser un URI JDBC comme dans l'exemple d'exportation Sqoop suivant :

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb?verifyServerCertificate=false&useSSL=true&requireSSL=true --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password Mymasterpass1

Pour plus d'informations sur le chiffrement SSL dans RDS, consultez la section Utilisation de SSL pour chiffrer une connexion à une instance de base de données dans le Guide de l'utilisateur Amazon RDS.

Pour plus d'informations, consultez la documentation Apache Sqoop.

Sécurisation de votre mot de passe

Différentes méthodes permettent de sécuriser votre mot de passe :

Java KeyStore

La méthode préférée consiste à chiffrer le mot de passe à l'aide d'un code Java KeyStore (JKS), éliminant ainsi le besoin de le stocker dans un format lisible.

  1. Créez un alias de mot de passe. Lorsque vous y êtes invité, entrez le mot de passe que vous utilisez pour accéder à la base de données.

    hadoop credential create mydb.password.alias -provider jceks://hdfs/user/root/mysql.password.jceks
  2. Utilisez l’alias de mot de passe pour lancer la tâche Sqoop :

    sqoop export -Dhadoop.security.credential.provider.path=jceks://hdfs/user/root/mysql.password.jceks --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-alias mydb.password.alias
--password-file

Vous pouvez utiliser la commande --password-file pour transmettre le mot de passe dans un fichier comme illustré dans l’exemple suivant :

  1. Créez un fichier contenant le mot de passe :

    echo -n 'Mymasterpass1' > /home/hadoop/mysql-pass.password
  2. Utilisez le fichier pour lancer la tâche Sqoop :

    sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-file /home/hadoop/mysql-pass.password
-P

Vous pouvez utiliser la commande -P pour entrer le mot de passe dans une invite comme illustré dans l’exemple suivant :

sqoop export --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master -P

La méthode préférée consiste à chiffrer le mot de passe à l'aide d'un code Java KeyStore (JKS), éliminant ainsi le besoin de le stocker dans un format lisible.

  1. Créez un alias de mot de passe. Lorsque vous y êtes invité, entrez le mot de passe que vous utilisez pour accéder à la base de données.

    hadoop credential create mydb.password.alias -provider jceks://hdfs/user/root/mysql.password.jceks
  2. Utilisez l’alias de mot de passe pour lancer la tâche Sqoop :

    sqoop export -Dhadoop.security.credential.provider.path=jceks://hdfs/user/root/mysql.password.jceks --connect jdbc:mariadb://$HOSTNAME:3306/mydb --table mysqoopexport --export-dir s3://amzn-s3-demo-bucket/myinputfiles/ --driver org.mariadb.jdbc.Driver --username master --password-alias mydb.password.alias

Rubrique précédente :

Sqoop
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.