République de Côte d’Ivoire
Union-Discipline-Travail
EXPOSE DE NOSQL
THEME
TYPES DE BASES DE DONNEES
NOSQL : HBASE
PRESENTE PAR : ENSEIGNANT :
- COULIBALY TENENA Docteur BOBET
MOHAMED
- HIEN AXEL
- N’GANDI BOSSOMA
BENEDICTE
SOMMAIRE
I. INTRODUCTION ..................................... 2
II. COMPRENDRE LES BASES DE DONNEES
NOSQL....................................................... 2
1. Définition ............................................ 2
2. Les principaux types de base de
données NoSql ........................................ 2
III. PRESENTATION DE HBASE ................... 3
1. Définition .............................................. 3
2. Architecture .......................................... 3
3. Avantages et inconvénients .................. 4
4. Tableau d’équivalence .......................... 5
IV. INSTALLATION...................................... 5
[Link] TP 1 NOSQL ...................... 7
VI. CONCLUSION ..................................... 14
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 1
I. INTRODUCTION
Avec la masse et la variété des données disponibles, il convient d’adapter leur gestion. Dans
un environnement où règne le Big Data, l’approche appropriée consiste à distribuer le
stockage des données afin de faciliter leur traitement. Pour ce faire, une nouvelle catégorie de
système de gestion de base de données appelée « No-SQL » a vu le jour. HBase en fait partie.
II. COMPRENDRE LES BASES DE DONNEES NOSQL
1. Définition
La base de données NoSQL (Not Only SQL) est un système de gestion de base de données
non relationnelle. Elle est utilisée pour stocker des données sous une forme non structurée ou
semi-structuré, tout ceci sans toutefois suivre de schémas de construction fixes. Ce système
aide à organiser les données de façon libre.
Le terme "NoSQL" signifie "non-relationnel" et indique que ces bases de données ne sont pas
construites selon le modèle relationnel des SGBDR, où les données sont organisées en tables
avec des lignes et des colonnes.
2. Les principaux types de base de données NoSql
Il existe plusieurs types de bases de données NoSQL, chacun avec ses propres
caractéristiques. On peut distinguer entre autres :
- Bases de données orientées document : les données sont stockées sous forme de
documents, généralement au format JSON ou BSON (Binary JSON). Exemples :
MongoDB, Couchbase.
- Bases de données clé-valeur : les données sont stockées sous forme de paires clé-
valeur, où une clé unique identifie chaque enregistrement. Exemples : Redis, Oracle
NoSql.
- Bases de données orientées colonnes : les données sont stockées en colonnes plutôt
qu'en lignes, ce qui permet de récupérer sélectivement des colonnes spécifiques.
Exemples : HBase, Cassandra.
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 2
- Bases de données orientées graphe : les données sont organisées en nœuds et arêtes,
ce qui permet de représenter des relations complexes entre les données. Exemples :
Neo4j, Titan.
III. PRESENTATION DE HBASE
1. Définition
HBase est un système de gestion de base de données non relationnelle orienté colonnes qui
fonctionnent sur HDFS (Hadoop Distributed File System). Contrairement aux bases de
données relationnelles qui stockent les données en lignes et colonnes, HBase stocke les
données en colonnes. Les données sont organisées en familles de colonnes, et chaque ligne
peut avoir un ensemble différent de colonnes. Cela permet de stocker des quantités massives
de données tout en permettant des lectures sélectives et des performances élevées.
2. Architecture
L'architecture d'HBase est conçue pour offrir une base de données NoSQL distribuée capable
de stocker et gérer de grandes quantités de données tout en garantissant la haute disponibilité
et l'évolutivité. Ainsi, les données sont organisées en tables, similaires à des tables de base de
données relationnelle. Les tables sont divisées en familles de colonnes pour un stockage
efficace.
Physiquement, HBase est composé de trois types de serveurs de type Master/Slave.
- Région Servers : permettent de fournir les données pour lectures et écritures. Pour
accéder aux données, les clients communiquent avec les RegionsServers directement.
- HBase HMaster : gère l'affectation des régions, les opérations de création et
suppression de tables.
- Zookeeper : permet de maintenir le cluster en état.
Le DataNode de Hadoop permet de stocker les données que le Region Server gère. Toutes les
données de HBase sont stockées dans des fichiers HDFS. Les RegionServers sont localisés
avec les DataNodes. Le NameNode permet de maintenir les métadonnées sur tous les blocs
physiques qui forment les fichiers.
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 3
Les tables HBase sont divisées horizontalement, par row en plusieurs Régions. Une région
contient toutes les lignes de la table comprises entre deux clefs données. Les régions sont
affectées à des nœuds dans le cluster, appelés Région Servers, qui permettent de servir les
données pour la lecture et l'écriture. Un région server peut servir jusqu'à 1000 régions.
Le HBase Master est responsable de coordonner les région servers en assignant les régions au
démarrage, les réassignant en cas de récupération ou d'équilibrage de charge, et en faisant le
monitoring des instances des région servers dans le cluster. Il permet également de fournir une
interface pour la création, la suppression et la modification des tables. HBase utilise
Zookeeper comme service de coordination pour maintenir l'état du serveur dans le cluster.
Zookeeper sait quels serveurs sont actifs et disponibles, et fournit une notification en cas
d'échec d'un serveur.
3. Avantages et inconvénients
Avantages
- Peut stocker de grands ensembles de données sur le stockage de fichiers HDFS et regrouper
et analyser des milliards de lignes présentes dans les tables Hbase.
- Dans HBase, la base de données peut être partagée.
- Il offre une grande extensibilité et une bonne tolérance aux pannes.
- Les opérations telles que la lecture et le traitement des données prendront peu de temps par
rapport aux modèles relationnels traditionnels.
- Opérations de lecture et d'écriture aléatoires
- Pour les opérations analytiques en ligne, HBase est largement utilisé.
- Par exemple : dans les applications bancaires telles que la mise à jour des données en temps
réel dans les distributeurs automatiques, HBase peut être utilisé.
Inconvénients
- HBase ne peut pas exécuter des fonctions comme SQL. Il ne prend pas en charge la structure
SQL et ne contient donc aucun optimiseur de requêtes.
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 4
- HBase est gourmand en CPU et en mémoire avec un accès séquentiel important aux entrées
ou aux sorties, tandis que les tâches Map Réduction sont principalement liées aux entrées ou
aux sorties avec une mémoire fixe. HBase intégré aux tâches Map-reduce entraînera des
latences imprévisibles.
- HBase intégré avec pig et Ruche les tâches entraînent des problèmes de mémoire temporelle
sur le cluster.
- Dans un environnement de cluster partagé, la configuration nécessite moins d'emplacements
de tâches par nœud à allouer pour les besoins du processeur HBase.
4. Tableau d’équivalence
SGBDR Hbase
Base de données et/schéma Namespace
Table Table multidimensionnel
Enregistrement Ligne ou rangée
IV. INSTALLATION
* Téléchargement de DOCKER
Aller sur le site de docker pour le téléchargement
Lien : [Link]
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 5
* Interface de DOCKER
* Téléchargement de HBASE
Aller dans la barre de recherche puis taper HBASE. Plusieurs versions de hbase sont disponibles sur
l’interface mais nous utiliserons personnellement DAJOBE/HBASE. Puis, cliquer sur RUN.
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 6
*Connexion avec la base de données
Pour se connecter à la base de données, il faut taper la commande #hbase shell.
Attention à la casse. On est maintenant connecté à la base donnée (voir image).
Nous voilà maintenant connecté à la base de données.
V. RESOLUTION TP 1 NOSQL
1. Se connecter à HBASE
hbase shell
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 7
2. Créer une base de données «tphbase »
create_namespace 'tphbase'
3. Afficher la base de données connectée
list_namespace
4. Afficher toutes les bases de données du serveur
List
5. la base de donnée crée s'affiche dans la liste à la différence de mongo.
6. Créer une table « lesetudiants »
create 'etudiant','info'
7. Lister vos tables
list
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 8
8. Insérer les étudiants suivants séparément
put 'etudiant','1','info:nom','Gnekibo'
put 'etudiant','1','info:prenom','Guy'
put 'etudiant','1','info:age','54'
put 'etudiant','2','info:nom','Ponce'
put 'etudiant','2','info:prenom','thomas'
put 'etudiant','2','info:age','50'
put 'etudiant','3','info:nom','Akonguhi'
put 'etudiant','3','info:prenom','Patrice'
put 'etudiant','3','info:age','22'
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 9
9. Afficher les documents enregistrés
scan 'etudiant'
10. Afficher le premier enregistrement
get 'etudiant','1'
11. Insérer les trois documents suivant en une opération
HBase ne prend pas en charge directement une opération d'insertion multiple avec des valeurs
différentes pour chaque colonne, donc on le fera séparément.
put 'etudiant','7','info:nom','Akpetou'
put 'etudiant','7','info:prenom','lazard'
put 'etudiant','7','info:age','22'
put 'etudiant','6','info:nom','Koua'
put 'etudiant','6','info:prenom','Jeremie'
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 10
put 'etudiant','6','info:age','15'
put 'etudiant','5','info:nom','Diarra'
put 'etudiant','5','info:prenom','Mahamadou'
put 'etudiant','5','info:age','21'
12. Afficher le nombre de documents enregistrés
count'etudiant'
13. Liste des étudiants de prénom « jeremie »
scan 'etudiant', {FILTER => "SingleColumnValueFilter('info', 'prenom', =, 'binary:Jeremie')"}
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 11
14. Lister les étudiants dont le nom commence par »K »
scan 'etudiant', {FILTER => "SingleColumnValueFilter('info', 'nom', =, 'regexstring:^K')"}
15. Liste les étudiants de prénom « jeremie » et d’age inférieur à 20
scan 'etudiant', {FILTER => "(SingleColumnValueFilter('info', 'prenom', =, 'binary:Jeremie')
AND SingleColumnValueFilter('info', 'age', <, 'binary:20'))"}
16. Liste les étudiants de prénom « jeremie » ou d’ages supérieurs à 20
scan 'etudiant', {FILTER => "(SingleColumnValueFilter('info', 'prenom', =, 'binary:Jeremie')
AND SingleColumnValueFilter('info', 'age',>, 'binary:20'))"}
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 12
17. Liste les étudiants de nom « Gnekibo », «ponce» ou « « Akpetou »
scan 'etudiant', {FILTER => "(SingleColumnValueFilter('info', 'nom', =, 'binary:Gnekibo') OR
SingleColumnValueFilter('info', 'nom', =, 'binary:Ponce') OR SingleColumnValueFilter('info',
'nom', =, 'binary:Akpetou'))"}
18. Modifier le nom « Akonguhi » > « N’guessan »
put 'etudiant', '1', 'info:nom', 'N\'guessan'
19. Supprimer l’enregistrement correspondant à « koua »
deleteall 'etudiant', 'Koua'
20. Supprimer tous les enregistrements
disable 'etudiant'
drop 'etudiant'
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 13
VI. CONCLUSION
En somme, HBase est une base de données NoSQL orientée colonnes, caractérisée par
son modèle de données basé sur des colonnes et sa répartition horizontale. HBase est aussi un
outil puissant pour gérer de gros volumes de données de manière évolutive.
Cependant, il est important de noter que HBase n'est pas une solution universelle. Chaque
base de données NoSQL à ses forces et ses faiblesses, et le choix d'une base de données
dépendra des besoins spécifiques de votre projet.
EXPOSE NOSQL sur le thème : TYPES DE BASES DE DONNEES NOSQL : Hbase 14