une introduction à hbase

17
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 à HBase Base orientée colonnes au dessus d'Hadoop Charly CLAIRMONT Altic - http://altic.org [email protected] @egwada

Upload: hadoop-user-group-france

Post on 25-May-2015

4.733 views

Category:

Documents


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Une introduction à HBase

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 à HBaseBase orientée colonnes au dessus d'Hadoop

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

Page 2: Une introduction à HBase

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/

Un peu d'histoire...

● 2006.11 - Google sort son papier sur BigTable

● 2007.02 - Version prototype d'HBase / contribution à Hadoop

● 2007.10 - Première version d'HBase

● 2008.01 - Hadoop devient un top-level project à la fondation Apache et HBase un sous-projet

● 2010.05 - HBase devient un top-level project à la fondation Apache

Page 3: Une introduction à HBase

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/

Pourquoi HBase ?

● Les jeux de données sont de plus en plus importants : Teraoctets au Petaoctets ou plus

● Le "scale out" est aussi peu cher que le "scale in "

● par simple ajout d'une machine commode● mais il arrive qu'Hadoop ne suffise pas● Nécessité de supporter l'écriture aléatoire et la lecture

aléatoire

Les bases de données traditionnelles ne suffisent tout simplement plus !

Page 4: Une introduction à HBase

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/

HBase est

● Distribuée● Orientée colonne● Multidimensionnelle

● Haute Disponibilité● Haute Performance● Système de stockage

Page 5: Une introduction à HBase

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/

HBase n'est pas

● une base de données SQL traditionnelle● pas de jointure, pas de moteur d'interrogation, pas

de type, pas de SQL● un remplaçant direct de votre SGBDR

● A vous d'apprécier un SGBDR sans schéma● données dénormalisées● table larges et peu peuplées

Page 6: Une introduction à HBase

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 fonctionne HBase ?

● Deux types de nœuds

● Master et RegionServer● Master (un à la fois)

● Gère les opérations du cluster

– Affectation, répartition de la charge, fractionnement– Haute disponibilité avec Zookeeper

● RegionServer

● héberge les tables, exécute les lectures, écritures● les Clients dialoguent directement avec eux pour les

lectures / écritures

Page 7: Une introduction à HBase

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/

HBase Tables

● Un cluster HBase est constitué d'un nombre quelconque de tables définies par l'utilisateur

● Schéma de la table ne définit que ses familles de colonnes

● Chaque famille se compose d'un certain nombre de colonnes

● Chaque colonne se compose d'un certain nombre de versions

● Colonnes n'existent que lorsqu'ils sont insérés, pour les "NULL" elles sont libres

● Tout sauf les noms de table / famille sont byte[]

● Lignes d'une table sont triés et stockés de manière séquentielle

● Les colonnes d'une famille sont triés et stockés de manière séquentielle

Page 8: Une introduction à HBase

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/

(Table, Row, Family, Column, Timestamp) → Value

Row Key Column Key Timestamp Value

1 info:name 1273516197868 Gaurav

1 info:age 1273871824184 28

1 info:age 1273871823022 34

1 info:sex 1273746281432 Male

2 info:name 1273863723227 Harsh

3 Info:name 1273822456433 Raman

2 Versions de la ligne

Timestamp est entier long

Nom de colonne

Trié selon la clé de la ligne et la clé de la colonne

Famille de colonne

Student table

Page 9: Une introduction à HBase

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 Tables HBase comme structure de données

● Une table fait correspondre les lignes et leur famille

● SortedMap(Row -> List(ColumnFamilies))● Une famille fait correspondre un nom de colonne et ses

versions

● SortedMap(Column -> SortedMap(VersionedValues))● Une colonne fait correspondre l'horodatage et les valeurs

● SortedMap(Timestamp -> Value)

Une table HBase est une structure tri-dimensionnel et triée

Page 10: Une introduction à HBase

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égion HBase

● Une table est constitué d'un nombre indéfini de régions

● Région est spécifiée par sa startKey et endKey

● Table Vide :

– table:(Table, NULL, NULL)● Table sur deux régions

– table:(Table, NULL, “MidKey”) et (Table, “MidKey”, NULL)● Une région existe seulement sur un RegionServer à la fois

● Chaque région peut vivre sur un nœud différent

– et est composée de plusieurs fichiers HDFS – et des blocs, dont chacun est reproduit par Hadoop

Page 11: Une introduction à HBase

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/

Architecture HBase (1)

Page 12: Une introduction à HBase

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/

Architecture HBase (2)

Page 13: Une introduction à HBase

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/

Architecture HBase (3)

● Les informations des régions et leurs emplacements sont rangées dans des tables spéciales appelées "catalog tables"

● ROOT - table contient les emplacements des méta tables● .META.table contient les schémas et les emplacements des

régions utilisateur● L'emplacement de ROOT est stocké par zookeeper

● c'est l'emplacement "de démarrage"● Zookepper est exploité pour la surveillance et la coordination

● élit le nœud maître● Nœuds éphémères pour détecter les défaillances de nœud

RegionServer

Page 14: Une introduction à HBase

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/

Principales caractéristiques d'HBase

● Partitionnement automatique des données

● Lorsque les données s'accumulent, HBase fractionne automatiquement

● Distribution transparente de la données

● Répartition de la charge est faite par le système lui même● les tables sont triées par lignes, les lignes selon les colonnes

● Définit pour un accès plus rapide● les clés composés facilitent ORDER BY / GROUP BY

● Filtre côté serveur

● Pas de talon d'Achille grâce à Zookeeper

Page 15: Une introduction à HBase

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/

Principales caractéristiques d'HBase (suite)

● Insertion et suppression de nœuds à chaud

● Déplacement des emplacements ne bouge les données● Support de création et de modification des tables à chaud

● tant au niveau des tables qu'au niveau des paramètres de configuration

● Lien étroit avec Hadoop MapReduce

● TableInputFormat / TableOutputFormat● FileOutputFormat

Page 16: Une introduction à HBase

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/

Se connecter à HBase

● Client / API natif en Java

● Get, Scan, Put, Delete classes

● HTablefor read/write, HBaseAdminfor pour les administrateurs

● Client non-Java

● Serveur Thrift (Ruby, C++, PHP, etc)

● Serveur REST

● Pig & Hive

● HBase commandes shell

● Jrubyshell supporte put, delete, get, scan

● Et même les commandes d'administration

● TableInputFormat / TableOutputFormat

Page 17: Une introduction à HBase

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 à HBase

Merci !

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