Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Une introduction à HBase

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 17 Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à Une introduction à HBase (20)

Plus par HUG France (20)

Publicité

Une introduction à HBase

  1. 1. 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 charly.clairmont@altic.org @egwada
  2. 2. 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
  3. 3. 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 !
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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)
  12. 12. 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)
  13. 13. 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
  14. 14. 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
  15. 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/ 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
  16. 16. 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
  17. 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 Merci ! Charly CLAIRMONT Altic - http://altic.org charly.clairmont@altic.org @egwada

×