Tous les produits
Search
Centre de documentation

Object Storage Service:Utiliser Apache Sqoop sur un cluster EMR pour lire et écrire des données stockées dans OSS-HDFS

Dernière mise à jour :Aug 18, 2026

Cette rubrique explique comment utiliser Apache Sqoop sur un cluster E-MapReduce (EMR) pour lire et écrire des données stockées dans OSS-HDFS.

Prérequis

  • Vous avez créé un cluster EMR exécutant EMR V3.42.0 ou version ultérieure, ou EMR V5.8.0 ou version ultérieure, en sélectionnant le composant Sqoop. Pour plus d'informations, consultez la section Créer un cluster.

  • Vous avez activé OSS-HDFS et accordé les autorisations d'accès requises. Pour plus d'informations, consultez la section Activer OSS-HDFS.

Procédure

  1. Connectez-vous au cluster EMR.

    1. Connectez-vous à la console EMR. Dans le volet de navigation de gauche, cliquez sur EMR on ECS.

    2. Cliquez sur le cluster EMR que vous avez créé.

    3. Cliquez sur l'onglet Nodes puis sur l'icône + située à gauche du groupe de nœuds.

    4. Cliquez sur l'ID ECS. Sur la page Instances, cliquez sur Connect à côté de l'ID de l'instance.

    Pour vous connecter au cluster depuis un environnement Windows ou Linux à l'aide d'une paire de clés SSH ou d'un mot de passe, consultez la section Se connecter à un cluster.

  2. Importez des données depuis OSS-HDFS vers MySQL.

    sudo sqoop import --connect  <dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <oss-dir>  --temporary-rootdir <oss-tmpdir> --check-column <col> --incremental <mode> --last-value <value> --as-<format> -m <count>
    • Le tableau suivant décrit les paramètres de la commande.

      Paramètre

      Obligatoire

      Description

      dburi

      Oui

      L'URI de connexion à la base de données. Exemple : jdbc:mysql://192.168.xxx.xxx:3306/.

      dbname

      Oui

      Le nom de la base de données.

      username

      Oui

      Le nom d'utilisateur pour se connecter à la base de données.

      password

      Oui

      Le mot de passe de l'utilisateur de la base de données.

      tablename

      Oui

      Le nom de la table MySQL.

      oss-dir

      Oui

      Le répertoire de destination dans OSS-HDFS pour les données importées. Exemple : oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/.

      oss-tmpdir

      Non

      Le répertoire temporaire pour la tâche d'importation. Ce paramètre est requis pour le mode d'importation incrémentielle « append ».

      Si vous définissez le paramètre mode sur append, Apache Sqoop importe les données dans un répertoire temporaire, puis renomme et stocke les fichiers dans le répertoire de destination. Si le répertoire de destination existe déjà dans OSS-HDFS, Apache Sqoop n'importe pas les données dans ce répertoire et n'écrase pas les données qu'il contient.

      col

      Non

      La colonne de vérification pour une importation incrémentielle.

      mode

      Non

      Le mode d'importation incrémentielle. Valeurs valides : append et lastmodified.

      • append : Importe les données de manière incrémentielle en fonction d'une colonne à incrémentation automatique.

      • lastmodified : Importe les données de manière incrémentielle en fonction d'une colonne d'horodatage.

      value

      Non

      La valeur maximale de la colonne de vérification lors de la précédente importation incrémentielle.

      format

      Non

      Le format du fichier de sortie. Valeurs valides : avrodatafile, sequencefile, textfile (par défaut) et parquetfile.

      count

      Non

      Le nombre de tâches MapReduce.

    • Exemple

      L'exemple de code suivant montre comment importer des données situées dans un répertoire spécifique du bucket examplebucket vers la table src_kv dans MySQL :

      sqoop import --connect jdbc:mysql://master-1-1/sqoop_test --username root --password password1  --table src_kv -m 1 --target-dir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/tmp/sqoop_kv --as-parquetfile