Les clusters E-MapReduce (EMR) exécutant la version 3.42 ou ultérieure, ou la version 5.8.0 ou ultérieure, prennent en charge OSS-HDFS (JindoFS) comme magasin de données. OSS-HDFS offre une accélération par cache et l'authentification Ranger, ce qui améliore les performances et simplifie la migration HDFS pour les scénarios ETL de big data utilisant Hive ou Spark. Cette rubrique décrit comment utiliser Hive ou Spark dans un cluster EMR pour accéder aux données stockées dans OSS-HDFS.
Contexte
OSS-HDFS est un service de stockage de lac de données natif du cloud. Grâce à sa gestion unifiée des métadonnées, il est entièrement compatible avec l'interface du système de fichiers HDFS et offre une prise en charge complète de POSIX. Cela en fait une solution idéale pour une large gamme de scénarios de calcul de lac de données dans les domaines du big data et de l'IA. Pour plus d'informations, consultez la rubrique Présentation d'OSS-HDFS.
Procédure
Cette rubrique utilise Hive comme exemple pour illustrer les opérations sur les données dans OSS-HDFS. Suivez des étapes similaires pour effectuer les mêmes opérations avec Spark.
Connectez-vous au cluster. Pour plus d'informations, consultez la rubrique Connexion à un cluster.
-
Créez une table Hive pointant vers OSS-HDFS.
-
Exécutez la commande suivante pour accéder à la ligne de commande Hive.
hive -
Exécutez la commande suivante pour créer une base de données pointant vers OSS-HDFS.
CREATE DATABASE if not exists dw LOCATION 'oss://{yourHdfsBucketDomain}/{path}';Description des paramètres :
dw: nom de la base de données. Vous pouvez personnaliser ce nom.{path}: chemin d'accès dans OSS-HDFS pour stocker la base de données. Vous pouvez personnaliser ce chemin.-
{yourHdfsBucketDomain}: nom de domaine du bucket pour le service OSS-HDFS.Pour obtenir l'endpoint, connectez-vous à la console OSS. Accédez au bucket cible. Dans l'onglet Overview, section Access Ports, copiez l'endpoint complet du bucket pour OSS-HDFS.
RemarqueCet exemple utilise le nom de domaine OSS-HDFS comme préfixe de chemin. Si vous souhaitez utiliser uniquement le nom du bucket pour pointer vers OSS-HDFS, vous pouvez configurer un endpoint au niveau du bucket ou un endpoint global. Pour plus d'informations, consultez la rubrique Annexe 1 : Autres méthodes de configuration d'un endpoint.
-
Exécutez la commande suivante pour utiliser la nouvelle base de données.
use dw; -
Exécutez la commande suivante pour créer une table dans la nouvelle base de données.
CREATE TABLE IF NOT EXISTS employee(eid int, name String,salary String,destination String) COMMENT 'Employee details';
-
-
Insérez des données dans la table.
Utilisez l'instruction INSERT INTO pour écrire des données dans la table. Cette instruction génère un job MapReduce.
INSERT INTO employee(eid, name, salary, destination) values(1, 'John Doe', '100.0', ''); -
Vérifiez les données de la table.
SELECT * FROM employee WHERE eid = 1;La sortie inclut les données insérées.
OK 1 John Doe 100.0 Time taken: 12.379 seconds, Fetched: 1 row(s)