JindoSDK est un client OSS développé pour les écosystèmes Hadoop et Spark. Il implémente un système de fichiers Hadoop hautement optimisé basé sur OSS. Par rapport au client OSS de la communauté Hadoop, JindoSDK offre de meilleures performances lors de l'interrogation de données stockées dans OSS-HDFS (JindoFS) via Impala.
Prérequis
Un compte Alibaba Cloud dispose des autorisations requises par défaut. Si vous utilisez un utilisateur RAM (Resource Access Management) pour accéder au service OSS-HDFS, vous devez lui accorder les autorisations nécessaires. Pour plus d'informations, consultez la rubrique Accorder à un utilisateur RAM les autorisations permettant de connecter un cluster non-EMR au service OSS-HDFS.
Par exemple, si votre déploiement s'appuie sur Alibaba Cloud ECS, vous devez acheter une instance ECS.
Un environnement Hadoop est configuré. Pour en savoir plus, reportez-vous à la section 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é. Consultez la documentation relative à l'activation du service OSS-HDFS pour plus de détails.
Procédure
Connectez-vous à l'instance ECS. Reportez-vous à la section Connexion à une instance ECS pour obtenir des instructions détaillées.
-
Configurez JindoSDK.
Téléchargez la dernière version du package JAR JindoSDK. Pour télécharger JindoSDK, rendez-vous sur GitHub..
-
Décompressez le package JAR JindoSDK.
L'exemple suivant illustre la décompression d'un package nommé
jindosdk-x.x.x-linux.tar.gz. Remplacez le nom du package par la version réelle que vous avez téléchargée.tar zxvf jindosdk-x.x.x-linux.tar.gzRemarquex.x.x représente le numéro de version du package JAR JindoSDK.
-
Copiez le package JAR JindoSDK téléchargé vers le chemin spécifié par classpath.
cp jindosdk-x.x.x-linux/lib/*.jar $HIVE_HOME/lib/
-
Configurez la classe d'implémentation d'OSS-HDFS et spécifiez la paire AccessKey à utiliser pour accéder au bucket.
-
Configurez la classe d'implémentation d'OSS-HDFS dans le fichier core-site.xml d'Impala.
<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 d'Impala, spécifiez l'AccessKey ID et l'AccessKey Secret du compte utilisé pour accéder au bucket activé pour OSS-HDFS.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
-
-
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 selon le 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.Il est également possible de 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.
-
Utilisez Impala pour interroger les données stockées dans OSS-HDFS.
-
Créez une table.
CREATE EXTERNAL TABLE customer_demographics ( `cd_demo_sk` INT, `cd_gender` STRING, `cd_marital_status` STRING, `cd_education_status` STRING, `cd_purchase_estimate` INT, `cd_credit_rating` STRING, `cd_dep_count` INT, `cd_dep_employed_count` INT, `cd_dep_college_count` INT) STORED AS PARQUET LOCATION 'oss://bucket.endpoint/dir'; -
Interrogez les données de la table.
select * from customer_demographics;
-