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.
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
Un compte Alibaba Cloud dispose par défaut des autorisations requises. Si vous utilisez un utilisateur Resource Access Management (RAM) pour accéder au service OSS-HDFS, vous devez lui accorder les autorisations nécessaires. Pour plus d'informations, consultez Accorder à un utilisateur RAM les autorisations pour connecter un cluster non-EMR au service OSS-HDFS.
Par exemple, si vous utilisez Alibaba Cloud ECS pour votre déploiement, vous devez acheter une instance ECS.
Vous avez créé un environnement Hadoop. Pour plus d'informations, consultez Créer un environnement d'exécution Hadoop.
Le service OSS-HDFS est activé pour un bucket et l'accès au service est autorisé. Pour plus d'informations, consultez Activer le service OSS-HDFS.
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
Connectez-vous à l'instance ECS. Pour plus d'informations, consultez Se connecter à une instance ECS.
Téléchargez et décompressez le package JAR du JindoSDK. Pour télécharger le package, rendez-vous sur GitHub.
-
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.gzRemarquex.x.x représente le numéro de version du package JAR du JindoSDK.
-
Configurez les variables d'environnement.
-
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 -
Configurez
HADOOP_CLASSPATH.export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*ImportantDéployez le répertoire d'installation et les variables d'environnement sur tous les nœuds requis.
-
-
Configurez la classe d'implémentation du service OSS-HDFS et la paire AccessKey.
-
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 -
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> -
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>
-
-
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. -
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.
-