Tous les produits
Search
Centre de documentation

Object Storage Service:Démarrage rapide : Connecter un cluster non-EMR au service OSS-HDFS

Dernière mise à jour :Aug 18, 2026

Le service Object Storage Service (OSS)-Hadoop Distributed File System (HDFS), également appelé JindoFS, est entièrement compatible avec les interfaces HDFS et prend en charge les opérations au niveau des répertoires. Le kit de développement logiciel (SDK) Jindo permet aux applications de calcul et d'analyse Apache Hadoop, telles que MapReduce, Hive, Spark et Flink, d'accéder au service OSS-HDFS. Cette rubrique explique comment déployer le JindoSDK sur une instance Elastic Compute Service (ECS) et réaliser les opérations courantes pour prendre en main le service OSS-HDFS.

Remarque

Si vous utilisez un cluster Alibaba Cloud E-MapReduce (EMR), vous pouvez connecter ce cluster au service OSS-HDFS. Pour plus d'informations, consultez Démarrage rapide : Connecter un cluster EMR au service OSS-HDFS.

Prérequis

Tutoriel vidéo

La vidéo suivante montre comment connecter rapidement un cluster non-EMR au service OSS-HDFS et réaliser les opérations courantes.

Procédure

  1. Connectez-vous à l'instance ECS. Pour plus d'informations, consultez Se connecter à une instance ECS.

  2. Téléchargez et décompressez le package JAR du JindoSDK. Pour télécharger le package, rendez-vous sur GitHub.

  3. Exécutez la commande suivante pour décompresser le package JAR du JindoSDK.

    L'exemple suivant illustre la décompression du fichier jindosdk-x.x.x-linux.tar.gz. Si vous utilisez une version différente du JindoSDK, remplacez le nom du package par le nom de fichier réel.

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

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

  4. Configurez les variables d'environnement.

    1. Configurez JINDOSDK_HOME.

      L'exemple suivant suppose que le package est décompressé dans le répertoire /usr/lib/jindosdk-x.x.x-linux :

      export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux
    2. Configurez HADOOP_CLASSPATH.

      export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*
      Important

      Déployez le répertoire d'installation et les variables d'environnement sur tous les nœuds requis.

  5. Configurez la classe d'implémentation du service OSS-HDFS et la paire AccessKey.

    1. Exécutez la commande suivante pour ouvrir le fichier de configuration core-site.xml de Hadoop.

      vim /usr/local/hadoop/etc/hadoop/core-site.xml
    2. Dans le fichier core-site.xml, configurez la classe d'implémentation DLS du JindoSDK.

      <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>
    3. Dans le fichier core-site.xml, configurez la paire AccessKey de votre compte Alibaba Cloud ou d'un utilisateur RAM disposant des autorisations requises.

      Pour plus d'informations sur les autorisations requises par un utilisateur RAM dans ce scénario, consultez Accorder à un utilisateur RAM les autorisations pour connecter un cluster non-EMR au service OSS-HDFS.

      <configuration>
          <property>
              <name>fs.oss.accessKeyId</name>
              <value>xxx</value>
          </property>
      
          <property>
              <name>fs.oss.accessKeySecret</name>
              <value>xxx</value>
          </property>
      </configuration>
  6. Configurez l'endpoint du service OSS-HDFS.

    Vous devez configurer un endpoint pour accéder à un bucket OSS via le service OSS-HDFS. Le format recommandé pour le chemin d'accès est oss://<Bucket>.<Endpoint>/<Object>. Par exemple, oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt. Une fois la configuration terminée, le JindoSDK utilise l'endpoint présent dans le chemin d'accès pour appeler l'API correspondante du service OSS-HDFS.

  7. Utilisez les commandes HDFS Shell pour réaliser les opérations courantes sur OSS-HDFS.

    • Charger un fichier

      Pour charger le fichier examplefile.txt depuis le répertoire racine local vers examplebucket, exécutez la commande suivante :

      hdfs dfs -put examplefile.txt oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/
    • Télécharger un fichier

      Pour télécharger le fichier exampleobject.txt depuis examplebucket vers le répertoire local /tmp, exécutez la commande suivante :

      hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt  /tmp/

    Pour plus d'informations sur les opérations, consultez Accéder à OSS-HDFS à l'aide des commandes shell Hadoop.

Annexe 1 : Optimisation des performances

Vous pouvez ajouter les éléments de configuration suivants au fichier core-site.xml de Hadoop pour optimiser les performances. Ces éléments de configuration sont pris en charge uniquement dans JindoSDK 4.0 et versions ultérieures.

<configuration>

    <property>
          <!-- The directories where the client writes temporary files. You can specify multiple directories separated by commas (,). In multi-user environments, grant read and write permissions. -->
        <name>fs.oss.tmp.data.dirs</name>
        <value>/tmp/</value>
    </property>

    <property>
          <!-- The number of retries when an attempt to access OSS fails. -->
        <name>fs.oss.retry.count</name>
        <value>5</value>
    </property>

    <property>
          <!-- The timeout for OSS requests, in milliseconds. -->
        <name>fs.oss.timeout.millisecond</name>
        <value>30000</value>
    </property>

    <property>
          <!-- The timeout for OSS connections, in milliseconds. -->
        <name>fs.oss.connection.timeout.millisecond</name>
        <value>3000</value>
    </property>

    <property>
          <!-- The number of concurrent threads to upload a single file to OSS. -->
        <name>fs.oss.upload.thread.concurrency</name>
        <value>5</value>
    </property>

    <property>
          <!-- The size of the queue for concurrent OSS upload tasks. -->
        <name>fs.oss.upload.queue.size</name>
        <value>5</value>
    </property>

    <property>
          <!-- The maximum number of concurrent OSS upload tasks per stream in a process. -->
        <name>fs.oss.upload.max.pending.tasks.per.stream</name>
        <value>16</value>
    </property>

    <property>
          <!-- The size of the queue for concurrent OSS download tasks. -->
        <name>fs.oss.download.queue.size</name>
        <value>5</value>
    </property>

    <property>
          <!-- The number of concurrent threads for downloading from OSS. -->
        <name>fs.oss.download.thread.concurrency</name>
        <value>16</value>
    </property>

    <property>
          <!-- The buffer size for pre-reading data from OSS. -->
        <name>fs.oss.read.readahead.buffer.size</name>
        <value>1048576</value>
    </property>

    <property>
          <!-- The number of buffers for concurrently pre-reading data from OSS. -->
        <name>fs.oss.read.readahead.buffer.count</name>
        <value>4</value>
    </property>

</configuration>