hcatalog

17

Click here to load reader

Upload: hadoop-user-group-france

Post on 25-May-2015

2.580 views

Category:

Art & Photos


0 download

DESCRIPTION

Couche de gestion des métadonnées pour Hadooppar Rémy DUBOIS

TRANSCRIPT

Page 1: 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

Page 2: HCatalog

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

Page 3: HCatalog

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

Page 4: HCatalog

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.

Page 5: HCatalog

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.

Page 6: HCatalog

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

Page 7: HCatalog

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

Page 8: HCatalog

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

Page 9: HCatalog

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();

Page 10: HCatalog

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

Page 11: 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

Page 12: 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

Le futur de HCatalog

Page 13: 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.

Page 14: HCatalog

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

Page 15: HCatalog

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

Page 16: HCatalog

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é

Page 17: 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

Questions