web-dev-qa-db-fra.com

À quoi sert hcatalog dans hadoop?

Je suis nouveau sur hadoop, je sais que le HCatalog est une couche de gestion de table et de stockage pour Hadoop. Mais comment cela fonctionne exactement et comment l'utiliser. Veuillez donner un exemple simple.

21
Vijay_Shinde

HCatalog prend en charge la lecture et l'écriture de fichiers dans n'importe quel format pour lequel un Hive SerDe (sérialiseur-désérialiseur) peut être écrit. Par défaut, HCatalog prend en charge les formats RCFile, CSV, JSON et SequenceFile. Pour utiliser un format personnalisé, vous devez fournir InputFormat, OutputFormat et SerDe.

HCatalog est construit au-dessus du métastore Hive et incorpore des composants du Hive DDL. HCatalog fournit des interfaces de lecture et d'écriture pour Pig et MapReduce et utilise l'interface de ligne de commande de Hive pour émettre des commandes de définition de données et d'exploration de métadonnées.

Il présente également une interface REST pour permettre aux outils externes d'accéder aux opérations Hive DDL (Data Definition Language), telles que "créer une table" et "décrire la table".

HCatalog présente une vue relationnelle des données. Les données sont stockées dans des tableaux et ces tableaux peuvent être placés dans des bases de données. Les tables peuvent également être partitionnées sur une ou plusieurs clés. Pour une valeur donnée d'une clé (ou d'un ensemble de clés), il y aura une partition qui contient toutes les lignes avec cette valeur (ou cet ensemble de valeurs).


Modifier: La plupart du texte provient de https://cwiki.Apache.org/confluence/display/Hive/HCatalog+UsingHCat .

7
Mayank Agarwal

En bref, HCatalog ouvre les métadonnées Hive à d'autres outils mapreduce. Chaque outil mapreduce a sa propre notion des données HDFS (par exemple, Pig voit les données HDFS comme un ensemble de fichiers, Hive les voit comme des tables). Avec l'abstraction basée sur une table, les outils mapreduce pris en charge par HCatalog n'ont pas besoin de se soucier de l'emplacement de stockage des données, du format et de l'emplacement de stockage (HBase ou HDFS).

Nous obtenons la facilité de WebHcat pour soumettre des travaux d'une manière RESTful si vous configurez webhcat le long de Hcatalog.

41

Voici un exemple très basique de la façon dont Ho utilise HCATALOG.

J'ai une table dans Hive, NOM DE LA TABLE est ÉTUDIANT qui est stocké dans l'un des emplacements HDFS:

neethu 90 malini 90 sunitha 98 mrinal 56 ravi 90 joshua 8

Supposons maintenant que je veuille charger cette table pour racler pour une transformation supplémentaire des données. Dans ce scénario, je peux utiliser HCATALOG:

Lorsque vous utilisez les informations de table de la métastore Hive avec Pig, ajoutez l'option -useHCatalog lors de l'appel de pig:

pig -useHCatalog

(vous souhaiterez peut-être exporter HCAT_HOME 'HCAT_HOME =/usr/lib/Hive-hcatalog /')

Maintenant, chargez cette table dans pig: A = LOAD 'student' USING org.Apache.hcatalog.pig.HCatLoader();

Maintenant que vous avez chargé la table dans pig. Pour vérifier le schéma, faites simplement une DESCRIPTION de la relation.

DESCRIBE A

Merci

27
Neethu

En ajoutant d'autres bons articles, je voudrais ajouter une image pour une compréhension claire de comment HCatalog fonctionne et quelle couche il se trouve dans le cluster

how <code>HCatalog</code> works and where it sits in cluster

Q: comment ça marche exactement?

Comme vous l'avez mentionné " HCatalog est une couche de gestion de table et de stockage pour Hadoop " qui donne une abstraction de haut niveau à d'autres frameworks comme MR, Spark et Pig en effectuant des opérations d'E/S sur la couche de stockage distribué pour les tables Hive.

HCatalog comprend 3 éléments clés

  1. SerDe: Bibliothèque de sérialisation et de désérialisation pour traiter différents formats de données.
  2. Meta store DB: Utilise pour stocker le schéma des tables Hive.
  3. WebHCat/HCatalog REST: Couche UI/REST au-dessus de la base de métadonnées DB pour les clients Web.

Q: comment l'utiliser?

Une fois HCatalog installé et exécuté avec succès, procédez comme suit sur CLI

usage: hcat { -e "<query>" | -f "<filepath>" } 
   [ -g "<group>" ] [ -p "<perms>" ] 
   [ -D"<name> = <value>" ]

-D <property = value>    use hadoop value for given property
-e <exec>                hcat command given from command line
-f <file>                hcat commands in file
-g <group>               group for the db/table specified in CREATE statement
-h,--help                Print help information
-p <perms>               permissions for the db/table specified in CREATE statement

Exemple:

./hcat –e "SELECT * FROM employee;"
11
mrsrinivas

Hcatalog est la gestion des métadonnées du système de fichiers Hadoop. Hcatalog est accessible via webhcat qui utilise l'api de repos. Quelles que soient les tables créées dans hcatalog, vous pouvez y accéder via Hive et pig.

3
saipm