Trino est un moteur de requêtes SQL distribué open source conçu pour l'exécution de requêtes analytiques interactives. Cette rubrique explique comment utiliser JindoSDK avec Trino afin d'interroger les données stockées dans OSS-HDFS.
Prérequis
Par exemple, si vous utilisez Elastic Compute Service (ECS) comme environnement de déploiement, vous devez créer une instance.
Un environnement Hadoop est configuré. Pour plus d'informations sur l'installation de Hadoop, consultez la section Accéder au service OSS-HDFS avec JindoSDK depuis Hadoop.
Trino est déployé. Pour plus d'informations, consultez la page Déploiement de Trino.
Le service OSS-HDFS est activé pour un bucket et les autorisations d'accès nécessaires sont accordées. Pour plus d'informations, consultez la section Activation du service OSS-HDFS.
Procédure
Connectez-vous à l'instance ECS. Pour plus d'informations, consultez la section Connexion à une instance ECS.
-
Configurez JindoSDK.
Téléchargez la dernière version du package JAR de JindoSDK. Pour télécharger JindoSDK, rendez-vous sur GitHub.
-
Décompressez le package JAR de JindoSDK.
L'exemple de code 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.gzRemarquex.x.x représente le numéro de version du package JAR de JindoSDK.
-
Installez le package JAR de JindoSDK téléchargé dans le chemin spécifié par le classpath.
cp jindosdk-x.x.x-linux/lib/*.jar $Trino_HOME/plugin/hive-hadoop2/
-
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 de configuration Hadoop core-site.xml sur tous les nœuds Trino.
<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 de tous les nœuds Trino, spécifiez l'AccessKey ID et l'AccessKey Secret à utiliser pour accéder au bucket sur lequel OSS-HDFS est activé.
<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 en utilisant 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 se basant sur l'endpoint spécifié dans ce chemin.Il est également possible de configurer l'endpoint d'OSS-HDFS via d'autres méthodes. Les endpoints configurés selon différentes approches ont des priorités distinctes. Pour plus d'informations, consultez la section Démarrage rapide : Connecter un cluster non-EMR au service OSS-HDFS.
ImportantAprès avoir effectué les configurations précédentes, vous devez redémarrer Trino pour qu'elles prennent effet.
-
Interrogez les données stockées dans OSS-HDFS
L'exemple suivant utilise HiveCatalog. Vous pouvez utiliser Trino pour créer un schéma pour OSS et exécuter des instructions SQL afin d'interroger les données stockées dans OSS-HDFS. L'installation et le déploiement de JindoSDK dans le service Hive sont requis, car Trino dépend de Hive Metastore. Pour plus d'informations, consultez la section Utiliser JindoSDK avec Hive pour traiter des données stockées dans OSS-HDFS.
-
Connectez-vous à la console Trino.
trino --server <Trino_server_address>:<Trino_server_port> --catalog hive -
Créez un schéma pour OSS.
create schema testDB with (location='oss://{yourBucketName}.{yourBucketEndpoint}/{schema_dir}'); -
Utilisez le schéma.
use testDB; -
Créez une table.
create table tbl (key int, val int); -
Insérez des données dans la table.
insert into tbl values (1,666); -
Interrogez les données de la table.
select * from tbl;
-