HCatalog
Click here to load reader
-
Upload
hadoop-user-group-france -
Category
Art & Photos
-
view
2.580 -
download
0
description
Transcript of HCatalog
HUG France #3 - 28 juin 2012
HCatalogCouche de gestion des métadonnées pour
Hadoop
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Rémy DUBOISrdubois_at_talend.com
Agenda
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
• Qu’est que HCatalog?
• HCatalog dans l’écosystème d’Hadoop• « How to » sans HCatalog• « How to » avec HCatalog
• HCatalog par l’exemple
• Le futur de HCatalog
• Q/A
HCatalog?
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
• Projet dans l’incubateur d’Apache
• Service de gestion de table et de stockage de données qui permet:• D’enregistrer et de partager le schéma des données.• D’ignorer où et comment est stockée la donnée.• Une interopérabilité entre les différents outils de transformation autour
d’Hadoop.
• La version 0.4 est disponible dans Hortonworks Data Platform V1.0
Différents outils de transformation
Map/Reduce• Early adopters• Orienté performance
Pig• ETL• Data modeling• Algorithmes itératifs
Hive• Analyses• Connecteurs vers des outils de BI.
Choix du meilleur outils pour un cas d’utilisation donné.
Difficile pour les utilisateurs de partager leurs données.
Comparaison des outils
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Map/Reduce Pig Hive
Record format Key/Value pairs Tuples Record
Data model User defined int, float, string, bytes, maps, tuples,
bags
int, float, string, maps, structs, lists
Schema Encoded in app Declared in script or read by loader
Read from metadata
Data location Encoded in app Declared in script Read from metadata
Data format Encoded in app Declared in script Read from metadata
• Les utilisateurs Pig et MR doivent connaître beaucoup d’information pour écrire leurs applications.
• Quand le schéma de donnée, l’emplacement, ou le format changent, les applications Pig et MR doivent être re-écrites, re-testées et re-déployées.
• Les utilisateurs Hive doivent charger les données de PIG/MR pour y avoir accès.
L’Ecosystème d’Hadoop
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Metastore HDFS
Hive
Metastore Client InputFormat/ OuputFormat
SerDe
InputFormat/ OuputFormat
MapReduce Pig
Load/Store
L’ouverture des métadonnées à Pig et MR
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
© Hortonworks 2012
Metastore HDFS
Hive
Metastore ClientInputFormat/ OuputFormat
SerDe
HCatInputFormat/ HCatOuputFormat
MapReduce Pig
HCatLoader/ HCatStorer
Comparaison des outils avec HCatalog
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
• Les utilisateurs Pig/MR peuvent lire le schéma depuis les métadonnées.• Les utilisateurs Pig/MR n’ont plus à se soucier ni de l’emplacement des
données, ni du format des données.• Accès aux données des autres utilisateurs dès qu’elles sont commitées.
Fonctionnalité Map/Reduce + HCat Pig + HCat Hive
Record format Record Tuples Record
Data model int, float, string, maps, structs, lists
int, float, string, bytes, maps, tuples, bags
int, float, string, maps, structs, lists
Schema Read from metadata Read from metadata Read from metadata
Data location Read from metadata Read from metadata Read from metadata
Data format Read from metadata Read from metadata Read from metadata
Un exemple avec Pig
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Imaginons que nous voulons compter le nombre de fois qu’un utilisateur a visité chaque URL:raw = load '/data/rawevents/20120530' as (url, user);botless = filter raw by myudfs.NotABot(user);grpd = group botless by (url, user);cntd = foreach grpd generate flatten(url, user), COUNT(botless); store cntd into '/data/counted/20120530';
Avec HCatalog:raw = load 'rawevents' using HCatLoader();botless = filter raw by myudfs.NotABot(user) and ds == '20120530';grpd = group botless by (url, user);cntd = foreach grpd generate flatten(url, user), COUNT(botless); store cntd into 'counted' using HCatStorer();
Une API REST pour HCatalog: TEMPLETON
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
• REST Endpoints: accès aux informations:• Des bases de données• Des tables• Des partitions• Des colonnes
• Opérations REST:• PUT pour créer des objets ou les mettre à jour.• GET pour lister des objets ou les décrire.• DELETE pour supprimer des objets.
GET http://hostname:50111/templeton/v1/ddl/database/default/table
{"tables": ["counted","processed",],"database": "default“
}
Hadoop/HCatalog
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
#3 HUG France 28 juin 2012
Démonstration
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
#3 HUG France 28 juin 2012
Le futur de HCatalog
Lire et écrire les données en parallèle
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
• Ce que veulent les utilisateurs:• Lire et écrire leurs enregistrements en parallèle entre Hadoop et leur système
parallèle.• Indépendamment du langage.• Sans connaissance particulière sur le format des fichiers Hadoop.
• Ce qui existe aujourd’hui:• WebHDFS
• Peut traiter les données en parallèle.
• Indépendant du langage.
• Ne traite que les bytes et ne comprend pas les formats Hadoop.• Sqoop
• Peut traiter les données en parallèle.
• Comprend les différents formats des fichiers Hadoop.
• Requiert un connecteur JDBC.
HCatReader et HCatWriter
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
Master
Slave
Slave
Slave
HCatalog
getHCatReader
HCatReader
read
Iterator<HCatRecord>
read
Iterator<HCatRecord>
read
Iterator<HCatRecord>
Input splits
HDFS
Hive JDBC/ODBC aujourd’hui
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
JDBC Client
Hive Server
ODBC Client
Issue: Nécessité d’avoir le code Hive sur le client
Issues: •Concurrence•Sécurité•Extensibilité
Issue: La version Open Source n’est pas simple à utiliser
Hadoop
Proposition ODBC/JDBC
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
JDBC Client
Hadoop
ODBC Client
REST ServerFournissent des implémentations Open Source robustes
• Crée le job à l’intérieur du cluster.• Exécute le job avec les droits de l’appelant.• Supporte la sécurité
Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
#3 HUG France 28 juin 2012
Questions