Software">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
33 vues4 pages

HBase API : Manipulation en Java

Ce document présente un TP sur la manipulation de la base de données HBase via l'API Java, en se concentrant sur les opérations DDL et DML. Il décrit les étapes pour créer et supprimer des tables, ainsi que pour insérer et récupérer des données dans HBase. Les étudiants sont guidés à travers des exemples de code pour établir des connexions, gérer des exceptions et effectuer des opérations sur les données.

Transféré par

Amz
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues4 pages

HBase API : Manipulation en Java

Ce document présente un TP sur la manipulation de la base de données HBase via l'API Java, en se concentrant sur les opérations DDL et DML. Il décrit les étapes pour créer et supprimer des tables, ainsi que pour insérer et récupérer des données dans HBase. Les étudiants sont guidés à travers des exemples de code pour établir des connexions, gérer des exceptions et effectuer des opérations sur les données.

Transféré par

Amz
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Sultan Moulay Slimane

Ecole National des Sciences Appliquées


Khouribga

- Base de Données NoSQL -


TP 6 : HBase – API Java

Objectif du TP : Manipulation de la base de données HBase via l’API Java pour


réaliser des opérations DDL et DML

‒ HBase fournit une API en Java pour pouvoir manipuler programmatiquement


les données de la base.
‒ HBase stocke des données binaires quelconques : chaînes, nombres, images,
etc. Il faut seulement les convertir en byte[] comme suit:
byte[] octets = [Link](donnée);

Partie I : Opérations DDL


Dans votre machine virtuelle « Cloudera », démarrer les services nécessaires
pour assurer le bon fonctionnement de HBase.
1. Lancer « Eclipse » et créer un nouveau projet.
2. Importer à votre projet tous les jars situés aux répertoires /user/lib/hbase et
/user/lib/hadoop.
3. Créer une classe « HbaseOperations » contenant une méthode main gérant
l’exception IOException.
4. Importer les classes suivantes :
import [Link];
import [Link].*;
import [Link].*;
import [Link].*;

5. Pour établir une connexion avec le serveur Hbase, utiliser le code suivant :
Configuration config = [Link]();
HBaseAdmin admin = new HBaseAdmin(config);
try {
//le code des opérations voulus

TP Base de Données NoSQL 1 Pr. Nassima SOUSSI


Université Sultan Moulay Slimane
Ecole National des Sciences Appliquées
Khouribga

} finally {
[Link]();
}

6. Pour créer la table «employes_2», écrivez la méthode static void


CreerTable(HBaseAdmin admin, String nomtable, List<String>
famillesCols) en suivant les étapes ci-dessous :

a. Créer une instance de la classe HTableDescription qui opère sur le nom de la


table convertie en byte.
b. Pour ajouter les familles de colonnes, utilisez la méthode addFamily (appelé
sur l’objet HTableDescription créé précédemment) pour chaque famille de
colonne :
Htd_obj.addFamily(new HColumnDescriptor(FC));

c. Appliquer la méthode createTable sur l’objet admin et ajouter un affichage à


la console indiquant la réussite de l’ajout.
d. Créer la table « employes_2 » avec deux familles de colonnes « info_maj »
et « info_sup » via la méthode CreerTable.
e. Exécuter ce code et vérifier la création de la table via hbase shell.

7. Pour la suppression de la table « employes_2 », créer la méthode static void


SupprimerTable(HBaseAdmin admin, String nomtable) comme suit :

a. Si la table existe déjà, appelez la méthode disableTable(table_name) pour


pouvoir supprimer la table par la suite via deleteTable(table_name).
b. Instancier la méthode SupprimerTable dans le main() pour supprimer la
table « employes_2 » si elle existe déjà avant de la recréer avec la méthode
CreerTable.
c. Ré-exécuter le tous et vérifier le résultat final.

Partie II : Opérations DML


Dans cette partie, on va effectuer des opérations DML sur les données de la
table « employes_2 ». Pour cela, il faut récupérer un objet HTable représentant la
table. Il est important de libérer cet objet dès qu’il ne sert plus.

TP Base de Données NoSQL 2 Pr. Nassima SOUSSI


Université Sultan Moulay Slimane
Ecole National des Sciences Appliquées
Khouribga

Remarque : Prévoir l’arrivée de IOException à tout moment

8. L’insertion d’une valeur consiste à créer une instance de la classe Put. Cet objet
spécifie la valeur à insérer :
‒ identifiant du n-uplet auquel elle appartient,
‒ nom de la famille,
‒ nom de la colonne,
‒ valeur,
‒ le timestamp à lui affecter (facultatif).
NB : toutes les données concernées doivent être converties en tableaux d’octets.
Pour créer la méthode static
void AjouterValeur(Configuration
config,String nomtable, String id,String fam, String col, String
val) qui réalisera cette fonction d’insertion, suivez les étapes ci-dessous :

a. Créer un objet HTable. Libérer le à la fin de la méthode (obj_htable.close()).


b. Créer un objet de la classe Put en spécifiant l’id de la valeur à ajoutée.
c. Ajouter à cet objet les autres informations (famile de colonne, colonne et la
valeur elle-même). Pour ce faire, utiliser la méthode obj_Put.add(…)
d. Ajouter cet objet Put à la table via la méthode put(obj_Put).
e. Utiliser cette méthode dans le main pour ajouter à la table « employes_2 »
les informations suivantes :
CF info_maj info_sup
id

001A

salaire depno
002B
12350 21

9. La récupération d’une cellule fait appel à un Get. Il se construit avec


l’identifiant du n-uplet voulu. Ensuite, on applique ce Get à la table. Elle
retourne un Result contenant les cellules du n-uplet.

TP Base de Données NoSQL 3 Pr. Nassima SOUSSI


Université Sultan Moulay Slimane
Ecole National des Sciences Appliquées
Khouribga

 Etape1 : Création de la méthode static void


AfficherNuplet(Configuration config, String nomtable,
String id) :
a. Créer un objet de type Get en utilisant l’id de la valeur voulue.
b. Créer un objet HTable. Libérer le à la fin de la méthode.
c. Récupérer le résultat (de type Result) via la fonction get(obj_Get).
d. Parcourir l’ensemble des cellules de ce résultat pour l’afficher à
l’utilisateur :
for (Cell cell: obj_result.listCells()) {
AfficherCell(cell);
}

 Etape2 : Définition de la méthode static void AfficherCell(Cell


cell):
a. Extraire la famille de colonne :
String fam = [Link]([Link](),
[Link](), [Link]());

b. Extraire la colonne (qualifier) et la valeur de la même manière.


c. Afficher le résultat sous la forme de:
Famille_de_colonne : colonne = valeur

10. Le parcours d’une table est réalisé avec un Scan. Il faut fournir la clé de départ
et celle d’arrêt (ou alors le scan se fait sur toute la table). Pour construire la
méthode static void ParcourirTable(Configuration config, String
nomtable, String start, String stop) , suivez les étapes ci-dessous :

a. Créer un objet de type Scan en utilisant la clé de départ (start) et la clé


d’arrivée (stop).
b. Créer un objet HTable.
c. Appliquer la méthode getScanner(scan_obj) sur l’objet HTable créé. Elle
retourne un résultat de type ResultScanner.
d. Parcourir ce résultat pour afficher les cellules de toutes les lignes. Penser à
se servir de la méthode AfficherCell(cell).
11. Appelez les méthodes précédentes dans le main et vérifier le résultat final.

TP Base de Données NoSQL 4 Pr. Nassima SOUSSI

Vous aimerez peut-être aussi