Vous êtes sur la page 1sur 4

Matière : Big Data avancées Atelier 2

Enseignant : MNIF Ahmed

Atelier 2 : Sqoop
I. Objectif
Cet atelier a pour but :

 Importer des données d’un SGBDR vers HDFS


 Exporter des données de HDFS vers un SGBDR

II. Utiliser sqoop pour importer et exporter des données de mysql vers
HDFS
1. Utiliser sqoop pour importer les données de la table « movies » dans la base de
données « movielens » dans hdfs sous le répertoire de l’utilisateur « maria_dev »
$ mysql -u root -p

 Remarque : on doit ajouter les privilèges à tous les utilisateurs pour permettre de lire la
base de données « movielens ». utiliser localhost et l’adresse ip local de la machine.

mysql> grant all privileges on movielens.* to ''@'172.17.0.2';

mysql> grant all privileges on movielens.* to ''@'localhost';

mysql> grant all privileges on movielens.* to ''@'sandbox.hortonworks.com';

$ sqoop import --connect jdbc:mysql://172.17.0.2/movielens --username root --password hadoop


--driver com.mysql.jdbc.Driver --table movies --m 1

 Remarque : 1 mapper par ce qu’on travaille en mode standalone (une seule machine)

1
2. Naviguer vers le répertoire de l’utilisateur maria_dev dans HDFS et vérifier que les
données sont importées sous HDFS

3. Effacer le dossier movies dans hdfs et utiliser à nouveau une commande Sqoop
pour importer les données de la table « movies » directement dans Hive dans une
table sous une nouvelle base de données « movielens_bigdata »
Tout d’abord on doit créer un nouveau schéma « movielens_bigdata » dans hive

$ hive

> create database movielens_bigdata ;

Maintenant on va charger les données à partir de mysql vers hive en spécifiant le nom de la table
dans hive.

$ sqoop import --connect jdbc:mysql://172.17.0.2/movielens --username root --password hadoop


--driver com.mysql.jdbc.Driver --table movies --hive-table movielens_bigdata.movies --hive-
import --m 1

4. Vérifier que les données sont importées dans Hive

2
 Remarque : Les données sont importées en premier lieu temporairement par défaut sous
le chemin « /user/maria_dev/movies » puisqu’on n’a pas spécifié l’option « --target-dir »
dans la commande « sqoop » puis ils ont été déplacées et chargées dans la table
« movielens_bigdata.movies » sous le data warehouse par défaut de hive dans HDFS
c’est à dire sous le chemin « /apps/hive/warehouse/movielens_bigdata.db »

5. Exporter les données dans l’autre sens maintenant (de Hdfs vers Mysql) dans une
nouvelle table « exported_movies » dans la base de données « movielens »
$ mysql -u root -p

mysql> use movielens ;

mysql> CREATE TABLE exported_movies (id INTEGER , title VARCHAR(255) , relaseDate


DATE ) ;

3
mysql> exit ;

$ sqoop export --connect jdbc:mysql://172.17.0.2/movielens --m 1 --driver


com.mysql.jdbc.Driver --table exported_movies --export-dir
/apps/hive/warehouse/movielens_bigdata.db/movies --input-fields-terminated-by '\0001'

 Remarque : '\0001' est le délimiteur par défaut de hive

6. Vérifier que les données sont bien importées dans la table exported_movies.
$ mysql -u root -p

mysql> use movielens ;

mysql> select * from exported_movies limit 5 ;

Vous aimerez peut-être aussi