Tous les produits
Search
Centre de documentation

Object Storage Service:Utilisation de JindoSDK avec Spark pour interroger des données stockées dans OSS-HDFS

Dernière mise à jour :Aug 18, 2026

JindoSDK est un client OSS destiné aux écosystèmes Hadoop et Spark, offrant une implémentation Hadoop FileSystem hautement optimisée. Par rapport aux clients Hadoop OSS, JindoSDK offre de meilleures performances lorsque vous utilisez Spark pour interroger des données dans OSS-HDFS.

Prérequis

Procédure

  1. Connectez-vous à l'instance ECS. Pour plus d'informations, consultez la rubrique Connexion à une instance ECS.

  2. Configurez JindoSDK.

    1. Téléchargez la dernière version du package JAR JindoSDK. Pour télécharger JindoSDK, rendez-vous sur GitHub.

    2. Décompressez le package JAR JindoSDK.

      L'exemple suivant illustre la décompression d'un package nommé jindosdk-x.x.x-linux.tar.gz. Si vous utilisez une autre version de JindoSDK, remplacez le nom du package par celui du fichier JAR correspondant.

      tar zxvf jindosdk-x.x.x-linux.tar.gz
      Remarque

      x.x.x représente le numéro de version du package JAR JindoSDK.

    3. Copiez les fichiers JAR JindoSDK téléchargés dans le classpath.

      cp jindosdk-x.x.x-linux/lib/*.jar  $SPARK_HOME/jars/
  3. Configurez la classe d'implémentation d'OSS-HDFS et spécifiez la paire AccessKey à utiliser pour accéder au bucket.

    • Configurez les paramètres dans le fichier core-site.xml.

      1. Définissez la classe d'implémentation d'OSS-HDFS dans le fichier core-site.xml de Spark.

        <configuration>
            <property>
                <name>fs.AbstractFileSystem.oss.impl</name>
                <value>com.aliyun.jindodata.oss.JindoOSS</value>
            </property>
        
            <property>
                <name>fs.oss.impl</name>
                <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value>
            </property>
        </configuration>
      2. Configurez l'AccessKey ID et l'AccessKey Secret utilisés pour accéder au bucket compatible OSS-HDFS dans le fichier de configuration core-site.xml de Spark.

        <configuration>
            <property>
                <name>fs.oss.accessKeyId</name>
                <value>LTAI********</value>
            </property>
        
            <property>
                <name>fs.oss.accessKeySecret</name>
                <value>KZo1********</value>
            </property>
        </configuration>
    • Configurez les paramètres lors de la soumission des jobs Spark.

      L'exemple suivant montre comment configurer la classe d'implémentation d'OSS-HDFS et spécifier la paire AccessKey utilisée pour accéder à un bucket lors de la soumission de jobs Spark :

      spark-submit --conf spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.OSS --conf spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem --conf spark.hadoop.fs.oss.accessKeyId=LTAI********  --conf spark.hadoop.fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7d****
  4. Configurez l'endpoint d'OSS-HDFS.

    Vous devez spécifier l'endpoint d'OSS-HDFS si vous souhaitez utiliser ce service pour accéder aux buckets dans Object Storage Service (OSS). Nous vous recommandons de configurer le chemin d'accès à OSS-HDFS au format oss://{yourBucketName}.{yourBucketEndpoint}/{path} (exemple : oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt). Une fois le chemin d'accès configuré, JindoSDK appelle l'opération OSS-HDFS correspondante en fonction de l'endpoint spécifié dans ce chemin.

    Vous pouvez également configurer l'endpoint d'OSS-HDFS par d'autres méthodes. Les endpoints configurés via différentes approches ont des priorités distinctes. Pour plus d'informations, consultez la rubrique Démarrage rapide : Connexion d'un cluster non-EMR au service OSS-HDFS.

  5. Utilisez Spark pour accéder à OSS-HDFS.

    1. Créez une table.

      create table test_oss (c1 string) location "oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/";
    2. Insérez des données dans la table.

      insert into table test_oss values ("testdata");
    3. Interrogez les données de la table.

      select * from test_oss;