Vous êtes sur la page 1sur 17

TRAVAIL PERSONNEL DE L’ETUDIANT :

INGENIERIE DES DONNEES (INF 356)

GroupeN o 9 Informatique fondamentale

THEME: Hbase

Membres du groupe

No MATRICULES NOMSETPRENOMS
1 20A0503FS RICKSEUNBE TEBOBE DAVID
2 22A1235FS SADATE MANA
3 22A1223FS SEINI MATAKUIOU
4 19A1168FS SOBNONE MOUBANE JONATHAN
5 16A0034FS SODKANRA MENDIKREO
6 22A0672FS SOULEY PAUL
7 22A1226FS SOULEYMANOU MANSOUROU
8 21A1034FS TAGUIEGUE BAVA
9 20A0393FS TAKA FIDELE FANDAI
10 20A1555FS TAKOUA BRUNO
11 20A0467FS TALO SYLAS
12 20A0602FS BAGOULONG MOUSSA CLEMENT

Enseignant : M. GAZISSOU Balama. Année académique: 2022−2023.


Table des matières

INTRODUCTION A LA HBASE 1
definition 2
2 CARACTERISTIQUE D’APACHE HBASE 2
2 – a- Concept de Base 2
3-ARCHITECTURE 3
3-a-Aspect Physique (avec Hadoop) 3
3-b-ZooKeeper 3
3-c-MasterServer 4
4-Lecture et Ecriture dans HBase 4
4-a-Lecture 4
4-b-Ecriture 6
QCM QUESTION A CHOIX MULTIPLES 7
EXERCICE CORRIGE 10
TPE INF 356 HBase

Introduction à la Hbase
Définition
Hbase est une base de données distribuées et non relationnelle, reprenant le concept et les
fonctionnalités de Google BigTable. La différence est que Hbase est Open Source. L’un des
principaux objectifs de Hbase est d’héberger des milliards de lignes et des millions de colonnes.
On peut ajouter des serveurs `a tout moment pour augmenter la capacité et de multiples nœuds
maitres assureront une haute disponibilité des données. Cette base de données s’exécute
généralement sur le système des fichiers distribués Hadoop (HDFS). Elle offre un accès
d’écriture et de lecture en temps réel, aléatoire et cohérent.

1-Caractéristiques d’Apache Hbase

• Prise en charge de l’échec automatique.


• Elle est de type orientée colonnes.
• Linéairement évolutif.
• Permet la réplication des données.
• S’intègre à Hadoop, à la fois comme source et comme destination. Les tables de cette
base de données peuvent servir d’entrée pour les tâches MapReduce dans l’´écosystème
Hadoop, et peuvent aussi servir de sortie après traitement des données par MapReduce.

Types de bases de données


Il y’a deux concepts base des données SQL et noSQL,le schema suivant nous présente le
modèle :

1
TPE INF 356 HBase

le concept de BD noSQL est devnu populaire auprès des gérant de l’internet tel que
google,facebook,amazon etc… qui traite d’énorme volume de donnée.Le temps de
réponse du système devient lent lorque vous utilisez SGBD pour des volumes massifs de
donnée
2-a-Concepts de base
La base de données Hbase est régie par les concepts suivants :
• Map : Le stockage se fait dans une map. Cette dernière est basée sur le principe de
clé/valeur. Chaque valeur (tableau de bytes) est identifiée par un clé (tableau de bytes).
L’accès à une valeur par sa clé est très rapide.
• Map trié : La map est triée par ordre lexicographique. Cette fonctionnalité de tri est très
importante car elle permet de récupérer les valeurs par intervalle de clés.
• Multidimensionnel : La clé dans la map est une structure composée de row-key, column
family, column, et d’un timestamp.
• Null (Sparse) : Contrairement aux bases de données relationnelles, une colonne qui n’a
pas de valeur n’est pas matérialisée (aucun stockage n’est n´nécessaire en cas d’une valeur
null pour une colonne).
• Persistance : Les données stockées dans la map sont sauvegardées durablement sur
disque.
• Consistance : Toutes les modifications sont atomiques et les lectures se font toujours sur
la dernière valeur validée (commit).
• Système distribué : Le système de base de données est construit sur un systèmes de
fichiers distribués afin que le stockage de fichiers sous-jacent soit reparti sur un ensemble
de machines d’un cluster. Les données sont répliquées sur un certain nombre de nœuds
permettant ainsi une tolérance aux pannes.
3-Architecture
Hbase est un système de gestion des données pour un environnement distribué qui est couple au
gestionnaire de fichier d’Hadoop où : Hbase gère la partie logique, tandis qu’Hadoop gère la
partie physique.
Aspect logique (Avec Hbase) Le modèle se base sur six concepts, qui sont :
• Htable : Les données sont organisées au sein de grandes tables. Les noms de tables sont
des chaînes de caractères.
• Row (Lignes) : dans chaque table les données sont organisées dans des lignes. Une ligne
est identifiée par une clé unique (RowKey). La RowKey n’a pas un type, elle est traitée
comme un tableau d’octets.
• Column Family (Familles de colonnes) : Les données au sein d’une ligne sont
regroupées par column family. Chaque ligne de la table a les mêmes column family, qui
peuvent être peuplées ou pas. Les column family sont définit `a la création de la table dans
Hbase, et chaque famille de colonne est divisée en sous colonnes.
• Column qualifier : -les colonnes- L’accès aux données au sein d’une column family se
fait via le column qualifier ou column. Ce dernier n’est pas spécifié à la création de la table
mais plus tôt `a l’insertion de la donnée. Comme les rowkeys, le column qualifier n’est pas
typé, il est traité comme un tableau d’octets.
• Cell : La combinaison du RowKey, de la Column Family ainsi que la Column qualifier
identifie d’une manière unique une cellule. Les données stockées dans une cellule sont

2
TPE INF 356 HBase

appelée les valeurs de cette cellule. Les valeurs n’ont pas de type, ils sont toujours
considérés comme tableau d’octets.
• Version : Les valeurs au sein d’une cellule sont versionnés. Les versions sont identifiés
par leur timestamp (de type long). Le nombre de versions est configuré via la Column
Family. Par défaut, ce nombre est égale à trois.
Du fait que toutes les données sont logiquement placées dans la même table, les jointures
sont inutiles.

3-a- Aspect physique (Avec Hadoop)


HBase est basé sur la même architecture physique qu’Hadoop puisque ce dernier gère le
stockage physique. On retrouve donc une configuration distribuée en cluster de plusieurs
nœuds qui peuvent être hétérogènes au niveau hardware.
Le principe est donc le même que celui d’Hadoop. Seuls les noms différents. La figure
suivante montre les principaux composants d’une architecture HBase :

La répartition des données se présente comme suit:


• Les lignes d’une HTable sont scindées en paquets réguliers par le regionServer. • Chaque
paquet est dirigé vers un serveur-esclave ou` il est de nouveau divisé par le memstore
selon les colonnes de la HTable. (c) La gestion d’un WAL, un BlockCache et plusieurs
Régions :
• BlockCache : Le BlockCache est un cache LRU. Il est activé par défaut pour toutes les
tables, ce qui signifie que toute opération de lecture sont chargées dans le cache LRU.
• Write Ahead Log (WAL) : Chaque ajoute ou mises `a jour dans un RegionServer sont
systématiquement écrit dans write-ahead log (WAL) en premier lieu. Avant d’être

3
TPE INF 356 HBase

répliquer dans le MemStore. Ce mécanisme garantit la durabilité de la donnée en cas de


défaillance du serveur. Le processus WAL écrit dans le fichiers Hlog qui est placé dans
HDFS. Pour chaque instance RegionServer il y a une instance de WAL.

• Region : C’est l’élément de base dans le stockage et la distribution de la donnée dans


HBase, dont l’implémentation est HRegion. Chaque Region gère un sous ensemble d’une
table HBase (une partition). Une Region est composée de :
– Store : Chaque partition d’une ColomnFamily est gérée par un store. HStore est
l’implémentation d’un Store, il est compose de plusieurs StoreFiles et d’un MemStore.
– MemStore : C’est un cache en mémoire. Il stocke toutes les écritures et les mises `a
jours relatives à une partition.
– Hfile : fichiers physique sur lequel les données sont sauvegardées.
Physiquement, HBase est composé de trois types de serveurs de type Master/Slave :

a- Region Servers: permettent de fournir les données pour lectures et écritures. Pour
accéder aux données, les clients communiquent avec les RegionServers directement.
b-HBase HMaster : gère l'affectation des régions, les opérations de création et
suppression de tables.
HMaster est l’implémentation du Master Server. Le Master Server est chargé de
coordonner et de surveiller toutes les instances de RegionServer du cluster. Il en charge de
la répétition des Region(s) sur les nœuds du cluster. Les changements dans les tables
métadonnées passe par le serveur Master Server

c- 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 colocalisés avec les DataNodes. Le NameNode
permet de maintenir les métadonnées sur tous les blocs physiques qui forment les
fichiers

Le projet open-source Apache Zookeeper est un système open-source de synchronisation


et de coordination des systèmes distribués, il permet de maintenir des informations de
configuration. Il propose aussi des services synchronisés et des services de groupe pour
une large variété d’applications distribuées. Cette technologie est déployée sur un cluster
Hadoop pour administrer l’infrastructure.
Zookeeper facilite la synchronisation entre les process en maintenant un statut sur les
serveurs Zookeeper qui stocke l’information sur des fichiers de log locaux. Les serveurs
ZooKeeper sont en mesure de supporter un large cluster Hadoop. Chaque machine client
communique avec l’un des serveurs pour retrouve l’information.

4
TPE INF 356 HBase

Installation de HBase

HBase est installé sur le même cluster que précédemment.


Suivre les étapes décrites dans la partie Installation du TP1 pour télécharger l'image et
exécuter les trois contenaires. Si cela est déjà fait, il suffit de lancer vos machines grâce
aux commandes suivantes:

 Docker start hadoop-master hadoop-slave1 hadoop-slave2

puis d'entrer dans le contenaire master :

 docker exec -it hadoop-master bash

Lancer ensuite les démons yarn et hdfs:

 Sudo ./start-hadoop.sh

Lancer HBase en tapant :


 Start-hbase.sh
Une fois c'est fait, en tapant jps , vous devriez avoir un résultat ressemblant au suivant :
161 NameNode
1138 HRegionServer
499 ResourceManager
1028 HMaster
966 HQuorumPeer
1499 Jps
348 SecondaryNameNode

Vous remarquerez que tous les démons Hadoop (NameNode, SecondaryNameNode et


ResourceManager) ainsi que les démons HBase (HRegionServer, HMaster et HQuorumPeer
(Zookeeper)) sont démarrés.

Manipulation de Hbase
Pour manipuler votre base de données avec son shell interactif, vous devez lancer le script
suivant:
Hbase shell

 Commençons par créer la table, ainsi que les familles de colonnes associées:

create 'sales_ledger','customer','sales'

Insérer les différentes lignes:

put 'sales_ledger','101','customer:name','John White'

5
TPE INF 356 HBase

put 'sales_ledger','101' , 'customer:city' , 'Los Angeles CA'


put 'sales_ledger','101','sales:product','Chairs'
put 'sales_ledger','101','sales:amount','$400.00'
put 'sales_ledger','102','customer:name','Jane Brown'
put 'sales_ledger','102','customer:city','Atlanta, GA'
put 'sales_ledger','102','sales:product','Lamps'
put 'sales_ledger','102','sales:amount','$200.00'
put 'sales_ledger','103','customer:name','Bill Green'
put 'sales_ledger','103','customer:city','Pittsburgh, PA'
put 'sales_ledger','103','sales:product','Desk'
put 'sales_ledger','103','sales:amount','$500.00'
put 'sales_ledger','104','customer:name','Jack Black'
put 'sales_ledger','104','customer:city','St. Louis, MO'
put 'sales_ledger','104','sales:product','Bed'
put 'sales_ledger','104','sales:amount','$1,600.00'

La différence entre HBase et SGBD

HBase SGBD

N’a pas de schema fixe. Il y’a un schema fixe qui décrit la structure de
Definit seulement les familles de colonne la table
Fonctionne bien avec les données structurées et Fonctionne bien avec les données structurées
semi-structurées

Il peut avoir des données de-normalisées stocke seulement avec les données normalisées
(valeur manquante).

Conçut pour les tables,large pouvant evoluer Conçut pour des « petites » tables difficiles à
horizontalement evoluer.

6
TPE INF 356 HBase

4-Lecture/Ecriture dans Hbase


4-a-Lecture
La lecture En premier lieu le client repère la Region qui est responsable de la partition
souhaitée. Pour se faire, le client contacte ZooKeeper afin de récupérer la table ROOT. A
partir de cette dernière une fois reçu, le client récupère l’emplacement de la tables META.
Cette dernière fournie au client la localisation de la Region qu’il cherche, ensuite il envoi
directement une requête de type « get » à ce Server Region qui contient l’information
souhaitée.
4-b-L´écriture
Les données envoyées par le client Region Server sont stockées d’une manière temporaire
dans le memstore, ensuite elles sont triées et indexées d’une manière
continue.

5-Avantages de HBase
Les avantages de HBase sont nombreux :
• Assure l’extensibilité et la scalabilité.
• Importante tolérance aux pannes : Les données sont répliquées sur les différents
serveurs du Data Center, et un failover (basculement) automatique garantit une haute
disponibilit´e.
• Rapidité : Il propose des lookups en temps réel ou presque, et un processing server
side 3 par le biais de filtres et de coprocesseurs. Un caching in-memory est également
proposé.
• Distribution transparente de la donnée : Répartition de la charge est faite par
le systéme lui mme.
• Les langages de programmation supportés : Hbase supporte beaucoup de
langage de programmation : C, C#, C++, Groovy, Java, PHP, Python, Scala.
• Utile pour les données de capteurs : HBase est trés adapté aux données collectées de
Façon incrémentielle à partir de diverses sources. Cela inclut l’analytique
sociale, les séries chronologiques, la mise a jour des tableaux de bord interactifs avec
les tendances et les compteurs, et la gestion de systèmes de journal audit.
• Fournit des recherches rapides pour les grandes tables.
• Fournit un accès à faible latence des rangées individuelles à partir de milliards
d’enregistrements.
• API Java facile pour le client
• Auto-sharding.
• C’est une base de données sans licence.
• Gère de grands ensembles de données sur le dessus du stockage de fichiers HDFS.
• Flexible sur la conception des schémas.
• Haute vitesse.

7
TPE INF 356 HBase

7-Inconvénients de HBase
• Ne supporte pas la transaction.
• Pas de permissions ou d’authentification intégrée.
• L’indexation et le tri se fait uniquement sur clé.
• Point de d´efaillance unique (lorsqu’un seul HMaster est utilisé).
• Ne supporte pas la structure SQL et XML.
• Problémes de mémoire sur le cluster : Il y a une trés faible capacité en mémoire.
• HBase ne vérifie pas le respect des contraintes d’intégrité reférentielle et sémantique

LES COMMANDES SHELL HBASE

8
TPE INF 356 HBase

QCM SUIVI DU CORRIGE SUR LE HBASE


Q 1 - Laquelle des commandes suivantes n'est pas l'une des commandes primitives pour
interagir avec Hbase
A – Goutte ◙
B -Obtenir
C - Mettre
D -Balayage
Q 2 - A la fin d'un compactage majeur le nombre de HFiles d'une table Hbase est :
A - Égal au nombre de familles de colonnes ◙
B - Un fichier H
C - La moitié du nombre de familles de colonnes d'une région
D - Doubler le nombre de familles de colonnes d'une région

Q 3 - Les valeurs stockées dans une cellule identifiée à l'aide d'une clé de ligne, d'une famille
de colonnes et d'un qualificatif de colonne sont stockées sous la forme
A – Octet◙
B -Numéro
C - Varchar
D – Nchar
Q 4 - Lorsqu'une application cliente souhaite accéder à une ligne dans une table Hbase, elle
interroge d'abord la table
A – Racine ◙
B - Meta.
C - Région
D -Toutes les régions
Q 5 - Dans Hbase, nous pouvons créer un index sur :
A - Plusieurs colonnes
B - Colonne clé ◙
C - Seulement une paire de colonnes
D - Hbase ne prend pas en charge la création d'index.

9
TPE INF 356 HBase

Q 6 - Un espace de noms dans Hbase est analogue à quel objet de base de données dans un système
relationnel ?
A -Tableau
B -Indice
C -Vue
D - Base de données ◙
Q 7 - Combien de types de marqueurs de suppression sont utilisés par Hbase pour supprimer des
colonnes ?
A -2
B -3 ◙
C -4
D-1
Q 8 - Un nouveau compteur créé dans Hbase a la valeur :
A -Zéro
B -1
C - Préc configuré
D - Décidé au moment de la création du compteur. ◙
Q 9 - Lequel des éléments suivants n'est pas un fichier valide dans Hbase ?
A - Fichiers de niveau table
B - Fichiers au niveau de la région
C - Fichiers au niveau de la famille de colonnes ◙
D - Fichiers de niveau racine Hbase
Q 10 - Dans quel scénario rien n'est écrit dans le WAL sur HBase ?
A - Mises à jour des enregistrements
B - Suppressions d'enregistrements
C - Exportation en masse
D - Chargement en vrac ◙
Q 11 - Quel est le nombre de MemStore par famille de colonne :
A -1 ◙
B -2
C - Égal à autant de colonnes dans la famille de colonnes
D - Égal à autant de familles de colonnes dans la table.

10
TPE INF 356 HBase

Q 12 - Les enregistrements supprimés dans Hbase sont stockés dans le fichier connu sous le nom de
Tombstone. Ensuite, l'espace n'est libéré qu'en supprimant véritablement ces enregistrements de
Hbase. Ce processus est connu sous le nom de :
A – Compactage ◙
B - Rétractation
C - Consolidation
D – Séparation

Q 13 - Les valeurs stockées dans une cellule identifiée à l'aide d'une clé de ligne, d'une famille de
colonnes et d'un qualificatif de colonne sont stockées sous la forme :
A – Octet◙
B -Numéro
C - Varchar
D - Nchar
Q 14 - Les deux tables qui sont utilisées pour trouver où les régions de différentes tables sont
hébergées sont :
A - Régiontab et Metatab
B - Régionbase et métabase
C - ROOT et META◙
D - –ROOT- et .REGION.
Q 15 - Dans Hbase, nous pouvons créer un index sur :
A - Plusieurs colonnes
B - Colonne clé◙
C - Seulement une paire de colonnes
D - Hbase ne prend pas en charge la création d'index.
Q 16 - Alors que les clés de lignes et de colonnes sont exprimées en octets, la version est spécifiée
comme :
A -Date
B - Entier long◙
C - Entier court
D – Décimal
Q 17 - Hbase peut stocker :
A - Seule chaîne

11
TPE INF 356 HBase

B - Seuls les chiffres


C - Uniquement les images
D - Toutes les données pouvant être converties en octets◙

Q 18 - Quel filer accepte la page size en paramètre ?


A - Filtre de colonne
B - Filtre de valeur
C - Filtre de page◙
D - Filtre clé
Q 19 - Le qualificateur de colonne Hbase dans une colonne peut être :
A - omis
B - Formulaire écrit et lu en cas d'omission
C - Ne peut pas être renommé après sa création.
D - Tout ce qui précède◙
Q 20 - La méthode qui peut être utilisée pour accéder directement au HFiel sans utiliser Hbase est :
A - HFichier.direct()
B - HFichier.access()
C – Hfile.main()◙
D - HFile.more()

Q 21 - Les colonnes dans Hbase sont organisées pour :


A - Groupe de colonnes
B - Familles de colonnes ◙
C - Liste des colonnes
D - Pied de colonne
Q 22 - Un enregistrement supprimé dans Hbase n'est pas immédiatement supprimé de Hbase. Au lieu de
cela, il est écrit dans un autre fichier et marqué comme Supprimer. Un tel fichier est connu sous le nom
A - DFichier
B - Tombfile
C - Pierre tombale◙

D – Affectation

12
TPE INF 356 HBase

Q 23 - Une analyse renvoie une grande quantité de lignes. Mais seules quelques lignes sélectionnées
peuvent être extraites d'une analyse à l'aide d'un :
A - Grouper par clause
B - Clause de minimisation
C – Clause de sous ensemble
D - Clause de filtrage ◙
Q 24 - La taille d'une région individuelle est régie par le paramètre
A - Hbase.region.size
B - Hbase.region.filesize
C – Hbase.region.max.filesize ◙
D – Hbase.max.region.size
Q 24 - Lorsqu'une tâche de carte dans un travail mapreduce lit à partir de la table Hbase, elle lit à
partir de :
A - Une rangée
B - Une famille de colonnes
C - Une colonne
D - Une région ◙
Q 25 - Le tuple qui spécifie une cellule dans Hbase est :
A - {ligne, colonne, version} ◙
B - {ligne, famille de colonnes, version}
C - {ligne, tableau, colonne}
D - {colonne-famille, colonne-attribut, version}
Q 26 - Lorsqu'un grand nombre de requêtes client sont dirigées vers un très petit nombre de nœuds
dans un cluster, cela s'appelle :
A - Latence
B - Goulot d'étranglement
C - Point d'accès ◙
D – Redondance
Q 27 - Le type de coprocesseurs qui s'apparentent aux procédures stockées en base de données
relationnelle est :
A - Coprocesseur de stockage
B - Coprocesseur parallèle
C – Observateur

13
TPE INF 356 HBase

D - Point final ◙
Q 28 - Si une seule famille de colonnes dépasse la taille de fichier maximale spécifiée par la
configuration Hbase, alors :
A - Une erreur de chargement de données s'est produite
B - La famille de colonnes est supprimée
C - Les données de la famille de colonnes sont tronquées
D - La région est divisée ◙
Q 29 - Avant que les modifications d'un fichier journal Hbase puissent être relues, elles sont
séparées en un fichier journal par région.
Il s'appelle -
A - Fendage de bûches ◙
B - Fractionnement régional
C - Fractionnement WAL
D - Fractionnement de la relecture
Q 30- Tous les travaux Mapreduce lisant à partir d'une table Hbase acceptent leur paire
[K1,V1] sous la forme de :
A - [rowid:valeur de la cellule]
B - [rowkey:résultat de l'analyse] ◙
C - [famille de colonne : valeur de cellule]
D - [attribut de colonne : résultat de l'analyse]
Q 31- En mode autonome, Hbase fonctionne sur :
A - Système de fichiers local ◙
B - Système HDFS
C - À la fois local et HDFS
D - Système de fichiers NAS
Q 32- Dans Hbase, nous pouvons créer un index sur :
A - Plusieurs colonnes
B - Colonne clé ◙
C - Seulement une paire de colonnes
D - Hbase ne prend pas en charge la création d'index.

Q33 - La commande qui permet de créer une table en Hbase est :

14
TPE INF 356 HBase

a) create
b) remove
c) mkdir
d) aucune réponse
Q33 - Laquelle de ces commandes SHELL Hbase active une table ?
a) create
b) alter
c) drop
d) enable
Q34-Lequel n’est pas composant de l’architecture principale de Hbase ?
a) HMaster
b) HregionServer
c) Apache
Q35-Hbase est une BD orienté :
a) Key-value
b) Graph
c) Document
d) Column store
Q36- La commande #Whoami :
a) Affiche les informations sur la BD
b) Affiche les informations sur l’administrateur
c) Affiche les informations sur la version de Hbase
d) Affiche les informations sur l’utilis

15

Vous aimerez peut-être aussi