Hadoop tutoriel: comment accéder à Hive depuis Pig avec HCatalog et Hue

Hadoop tutoriel: comment accéder à Hive depuis Pig avec HCatalog et Hue

Ce blog est sur ​​l’accès du Metastore de Hive avec Hue, l’open source Hadoop UI et éclaircir une certaine confusion sur l’utilsation de HCatalog.

Qu’est ce HCatalog?

Apache HCatalog est un projet permettant au application autres que Hive d’accéder a ses tables. Vous pouvez ensuite charger directement les tables avec Pig ou MapReduce sans avoir à vous soucier de re-définir les schémas d’entrée, de l’emplacement des données ou leur duplication.

Hue est livré avec une application pour accéder à la metastore de Hive au sein de votre navigateur: Metastore Browser. Bases de données et les tables peuvent être parcourus à travers et créés ou supprimés avec des assistants.

Les assistants ont été démontrées dans le précédent tutoriel sur la façon d’ analyser les données de Yelp . Hue utilise HiveServer2 pour accéder au Hive Metastore au lieu de HCatalog. C’est parce que HiveServer2 est le nouveau serveur concurrent sécurisée et multi-usages pour la Hive et il inclut déjà une riche et rapide API pour contacter le metastore.

Des connecteurs pour HCatalog sont cependant utiles pour accéder aux données de Hive depuis Pig. Voici une démo sur l’accès à l’exemple des tables de Hive depuis Pig.

Voici un résumé vidéo (en anglais) des nouvelles fonctionnalités:

Tutoriel

Vous devez d’abord installer HCatalog partir ici ou Cloudera Manager. Si vous utilisez un cluster non pseudo-distribué (par exemple, pas sur une machine virtuelle de démonstration) faire en sorte que le Metastore de Hive est à distance ou vous aurez une erreur comme ci-dessous. Ensuite, transférez les 3 jars de /usr/lib/HCatalog/share/HCatalog/ et tous ceux de Hive à partir de /usr/lib/hive/lib dans la Pig sharelib de Oozie située dans /user/oozie/share/lib/pig. Cela peut être fait en quelques clics, tout en étant connecté en tant que utilsateur «oozie» ou «HDFS» dans le Navigateur de fichiers.

Méfiez-vous, tous les jars seront inclus dans tous les scripts de Pig, ce qui pourrait ne pas être nécessaire. Une autre solution serait de transférer ces jars dans votre répertoire home HDFS et ensuite inclure le chemin vers le répertoire avec une propriété Hadoop ‘oozie.libpath’ dans la section ‘Propriétés’ de l’éditeur de Pig.

Ensuite, assurez-vous que les exemples de Beeswaz sont installés (étape n ° 2 à l’Assistant de démarrage rapide) et d’ouvrir l’éditeur de Pig et de calculer le salaire moyen dans le tableau (équivalent de cette  requête Hive):

- Tableau des charges 'sample_07' 
sample_07 = LOAD 'sample_07' en utilisant org.apache.hcatalog.pig.HCatLoader (); 

- Calculer le salaire moyen de la table 
salaires = GROUPE sample_07 tous; 
out = FOREACH salaires GENERATE AVG (sample_07. salaire); 
vider;

Comme HCatalog a besoin d’accéder au metastore, nous devons préciser la hive-site.xml. Allez dans «Propriétés», «Ressources» et ajouter un «Fichier» pointant vers la hive-site.xml uploadé sur le HDFS.

Puis soumettre le script en appuyant sur CTRL + ENTRER! Le résultat (47963,62637362637)

apparaîtra à la fin des logs.

Notez que nous n’avons pas besoin de redéfinir le schéma ca ‘il est automatiquement capté par le loader. Si vous utilisez l’Application Oozie, vous pouvez maintenant utiliser librement HCatalog dans vos actions Pig.

Attention!

Si vous obtenez ce message d’erreur, cela signifie que votre metastore appartient à l’utilisateur Hive et n’est pas configuré en remote.

Cannot get a connection, pool error Could not create a validated object, cause: A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.

2013-07-24 23: 20:04,969 [main] INFO DataNucleus.Persistence - DataNucleus Persistance usine initialisé pour datastore URL = "jdbc: derby:; databaseName = / var / lib / ruche / metastore / metastore_db; create = true" driver = "org.apache.derby . jdbc.EmbeddedDriver "username =" APP "

sudo rm /var/lib/hive/metastore/metastore_db/*lck
sudo chmod 777 -R /var/lib/hive/metastore/metastore_db

De même que HCatLoader, utilisez HCatStorer pour mettre à jour la table, par exemple:

STORE alias INTO 'sample_07' USING org.apache.hcatalog.pig.HCatStorer();

Résumé

Nous avons vu que Hue fait permet d’acceder le Hive Metastore facilement et prend en charge les connecteurs HCatalog pour Pig. Hue 3,0 simplifiera encore plus en copiant automatiquement les fichiers jar nécessaires eten rendant les noms de table auto-completant !

Comme d’habitude, nous nous réjouissons de vos commentaires sur le groupe d’utilisateurs !