Inspirée des publications de Google sur BigTable, HBase est un SGBD non relationnel capable de gérer d'énormes quantités de données. Sous projet d'Hadoop, il permet de distribuer les données en utilisant le système de fichiers distribué HDFS (Hadoop Distributed File System) du Framework. Son fonctionnement, qui repose donc sur le stockage distribué des données sur un cluster de machines physiques, garantit à la fois la haute disponibilité et les hautes performances des bases. Deux arguments de poids qui suffisent à comprendre le succès croissant de la solution. A l’issue de cette formation, les participants disposeront des connaissances et compétences nécessaires à la mise en oeuvre de HBase. De l’installation du système à sa mise en oeuvre opérationnelle avec HDFS, les différentes étapes de son adoption sont couvertes par ce programme.
INTRODUCTION
- Rappels rapides sur l'écosystème Hadoop
- Les fonctionnalités du framework Hadoop
- Le projet et les modules : Hadoop Common, HDFS, YARN, Spark, MapReduce
- Présentation HBase
- Historique
- Lien avec HDFS
- Format des données dans HBase
- Définitions : table, région, ligne, famille de colonnes, cellules, espace de nommage, ...
- Fonctionnalités : failover automatique, sharding, interface avec des jobs MapReduce
ARCHITECTURE
- HBase master node, Region Master, liens avec les clients HBase
- Présentation du rôle de Zookeeper
INSTALLATION
- Choix des packages
- Installation et configuration dans le fichier conf/hbase-site.xml
- Installation en mode distribué
- Test de connexion avec hbase shell
- Travaux pratiques : interrogations depuis le serveur http intégré
HBASE UTILISATION : SHELL
- Présentation des différentes interfaces disponibles
- Travaux pratiques avec hbase Shell
- Commandes de base, syntaxe, variables, manipulation des données : create, list, put, scan, get
- Désactiver une table ou l'effacer : disable (enable), drop, ...
- Programmation de scripts
- Gestion des tables : principe des filtres
- Mise en oeuvre de filtres de recherche, paramètres des tables
- Présentation des espaces de nommage
CLUSTER HBASE
- Fonctionnement en mode distribué
- Première étape : fonctionnement indépendant des démons (HMaster, HRegionServer, Zookeeper)
- Passage au mode distribué : mise en oeuvre avec HDFS dans un environnement distribué
- Travaux pratiques : sur un exemple de tables réparties : mise en oeuvre des splits
PROGRAMMATION
- Introduction, les APIs (REST, Avro, Thrift, Java, Ruby, Spark, ...)
- Principe des accès JMX
- Démonstration avec Prométheus
- Exemple de programmation d'un client Java
- Gestion des tables
- Lien avec map/reduce
- Travaux pratiques : lancement et écriture de programmes Spark