Une introduction à Hive

15
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/ HUG France SL2013 – Mai 2013 Introduction à HIVE Hadoop comme Entrepôt de données Charly CLAIRMONT Altic - http://altic.org [email protected] @egwada

description

A l'occasion de Solution Linux 2013 nous présentons Hadoop à la communauté en France. Ici une introduction à Hive.

Transcript of Une introduction à Hive

Page 1: Une introduction à Hive

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/

HUG France SL2013 – Mai 2013

Introduction à HIVE

Hadoop comme Entrepôt de données

Charly CLAIRMONTAltic - http://[email protected]@egwada

Page 2: Une introduction à Hive

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/

D'où vient Hive ?

● Chez Facebook manipulation d'une quantité monstre des données chaque jour

● Avoir des alternatives à ● MapReduce● Pig

● Rentabiliser les ingénieurs qui connaissent et maîtrisent SQL !

Page 3: Une introduction à Hive

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/

C'est quoi Hive ?

Une infrastructure pour Entrepôt de Données

on peut tout simplement le considérer comme un Data Warehouse !

Page 4: Une introduction à Hive

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/

Comment ça marche ?

● Hive a pour fondation Hadoop● Hive stocke ses données dans HDFS● Hive compile des requêtes SQL en jobs

MapReduce et les exécute sur le cluster Hadoop

Page 5: Une introduction à Hive

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/

Hive structure la donnée dans un modèle bien connu : Tables, colonnes, lignes...

Page 6: Une introduction à Hive

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/

Hive architecture, composants

HDFS

DDL QueriesBrowsing

MapReduce

MetaStore

Thrift API

SerDeThrift Jute JSON..

ExecutionDriver

Parser

Planner

DB

Web U

I

Optimizer

JDBC ODBCCLI

Page 7: Une introduction à Hive

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/

Hive Architecture, détail composants (1)

● Interface Externe

● fournit deux sortes d'interfaces

– utilisateur● commande line (CLI)● WEB

– programmation (API)● JDBC, ODBC

● Thrift Server expose une API très simple pour exécuter les requêtes HiveQL

● Metastore est un catalogue.

● Tous les autres composants de Hive interagissent avec le Metastore.

Page 8: Une introduction à Hive

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/

Hive Architecture, détail composants (2)

● Driver

Gère le cycle de vie des requêtes HiveQL durant leur compilation, leur optimisation, et leur exécution

● Compiler

Transforme les requêtes en un plan qui constitue une suite de DAG de job MapReduce

Le Driver soumet les jobs mapReduce individuels depuis le DAG vers le moteur d'exécution selon une séquence

Page 9: Une introduction à Hive

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/

Hive Architecture, détail composants (3)

● Le Metastore est un catalogue qui contient les metadonnées des tables stockées dans Hive

● Database : espace de nom pour les tables● Table : Métadonnées des tables qui contiennent la liste

des colonnes, leur types, leurs propriétaires, leur emplacements de stockages et les informations de sérialisation

● Partition : chaque partition peut avoir ses propres colonnes, son stockage et sa sérialisation

● Buckets : découpage des partitions (optimisation pour les jointures)

Page 10: Une introduction à Hive

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/

Cycle de vie d'une requête

● Parser transfome la requête en arbre

● Semantic Analyzer transforme l'arbre en une représentation interne de la requête par bloc

● Logical Plan Generator convertit la représentation interne en un plan logique, c'est-à-dire un arbre d'opérations logiques

● Optimizer parcourt plusieurs fois le plan logique d'opérations pour le rendre plus performant

● Physical Plan Generator convertit le plan logique en un plan physique de DAG de job mapReduce

Page 11: Une introduction à Hive

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/

HiveQL, SQL pour Hive

● HiveQL supporte● DDL (Create, Alter, Drop)● DML (load, Insert,Select)● Fonction utilisateurs● Appel à des programmes externe MapReduce

Page 12: Une introduction à Hive

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/

Création de tables

SHOW TABLES;

CREATE TABLE shakespeare (freq INT, word STRING) ROW FORMAT

DELIMITED FIELDS TERMINATED BY ‘\t’

STORED AS TEXTFILE;

DESCRIBE shakespeare;

Page 13: Une introduction à Hive

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/

Chargement de données depuis HDFS

LOAD DATA LOCAL INPATH ‘/logs/status_updates’ INTO TABLE status_updates PARTITION (ds=’2013-05-28’);

Page 14: Une introduction à Hive

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/

Sélection / Insertion résultat

FROM (

SELECT a.status, b.school, b.gender

FROM status_updates a

JOIN profiles b ON (a.userid = b.userid and a.ds=’2013-05-28’ )

) subq1

INSERT OVERWRITE TABLE gender_summary PARTITION(ds=’2013-05-28’)

SELECT subq1.gender, COUNT(1) GROUP BY subq1.gender

INSERT OVERWRITE TABLE school_summary PARTITION(ds=’2009-05-28’)

SELECT subq1.school, COUNT(1) GROUP BY subq1.school

Page 15: Une introduction à Hive

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/

HUG France SL2013 – Mai 2013

Introduction à HIVE

Merci !

Charly CLAIRMONTAltic - http://[email protected]@egwada