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.
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 .
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.
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
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
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
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;"
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.