Vous êtes sur la page 1sur 11

MINISTÈRE DE L’ÉDUCATION NATIONALE, DE RÉPUBLIQUE DU MALI

L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE


***********
SCIENTIFIQUE
Un peuple - Un but - Une foi
*****************
ÉCOLE NATIONALE D’INGÉNIEURS
ABDERHAMANE BABA TOURE (ENI-ABT)

*****************

Thème :

Introduction à Apache Sqoop - Transfert


de données entre Hadoop et les bases
de données relationnelles

Présenté et soutenu par :

Aliou COULIBALY

Amidou BAGAYOGO

Responsable pédagogique : Dr SIDIBE

Date : Le 03/08/2023
Table des matières
I. Introduction : ................................................................................................................................. 1
II. Définition du Sqoop : ................................................................................................................ 1
III. Pourquoi utiliser Apache Sqoop :............................................................................................. 2
IV. Commandes Sqoop : .................................................................................................................. 2
1. L’outil Sqoop « list-databases » :.............................................................................................. 2
2. L’outil Sqoop « list-tables » : .................................................................................................... 2
3. L’outil Sqoop « eval » : .............................................................................................................. 3
4. L’outil Sqoop import : ............................................................................................................... 3
5. L’outil Sqoop « import-all-tables » : ........................................................................................ 4
6. L’outil Sqoop « export » :.......................................................................................................... 4
7. L’outil SQOOP « job » : ............................................................................................................ 4
V. Caractéristiques d’Apache Sqoop : ............................................................................................. 5
VI. Architecture du SQOOP :......................................................................................................... 5
1. Architecture SQOOP import :.................................................................................................. 6
2. Architecture Sqoop export : ..................................................................................................... 6
VII. Configuration Sqoop : ............................................................................................................... 7
VIII. Fonctionnalités clés du Sqoop : ............................................................................................ 8
1. Importation et exportation de données : ................................................................................. 8
2. Prise en charge de diverses sources de données :.................................................................... 8
3. Parallélisme et tolérance aux pannes :..................................................................................... 8
IX. Utilisation dans des cas réels : .................................................................................................. 8
X. Considérations relatives à la sécurité : ........................................................................................ 9
XI. Conclusion :................................................................................................................................ 9
I. Introduction :

Apache Sqoop est un outil open-source largement utilisé pour faciliter le transfert de
données entre les systèmes de stockage relationnels et les Frameworks de traitement de
données Hadoop.

Après le chargement des données dans HDFS, les développeurs utilisent ces données pour
trouver des informations cachées. Pour cela, les données résidant dans les SGBDR doivent
être transférées vers HDFS.

Sqoop automatise la majeure partie du processus de transfert :

• Sqoop utilise le Framework MapReduce pour importer et exporter les données, qui
fournit un mécanisme parallèle ainsi qu’une tolérance aux pannes.
• Sqoop simplifie le travail des développeurs en fournissant une interface de ligne de
commande : le détail d’authentification de la source, la destination et de la BD dans la
commande Sqoop.

II. Définition du Sqoop :

Sqoop est un outil conçu pour transférer des donnés entre Hadoop et des serveurs de bases
de données relationnelles. Il est utilisé pour importer des données de BD relationnelles telles
que MySQL, Oracle… vers Hadoop HDFQ et pour exporter du système de fichiers Hadoop
vers des BD relationnelles.

Sqoop est fourni par la Fondation Apache Software.

1
III. Pourquoi utiliser Apache Sqoop :

Apache Sqoop est un outil puissant qui peut aider les entreprises à intégrer de manière
transparente leurs données provenant de différentes sources. Grâce à sa capacité à se
connecter à diverses sources de données, Sqoop facilite l’importation et l’exportation de gros
volumes de données rapidement et efficacement.

L’un des plus grands avantages de l’utilisation d’Apache Sqoop est qu’il permet aux
entreprises d’économiser du temps et des ressources en automatisant le processus
d’intégration des données. Cela signifie que les entreprises peuvent se concentrer sur l’analyse
des données plutôt que de passer un temps précieux à les transférer manuellement entre les
systèmes. De plus, la capacité de Sqoop à effectuer des importations et des exportations
incrémentielles garantit que seules les données nouvelles ou mises à jour sont transférées, ce
qui réduit encore la charge de travail des entreprises.

IV. Commandes Sqoop :

Figure 1 : liste des commandes de Sqoop.

1. L’outil Sqoop « list-databases » : cet outil analyse et exécute la requête


« SHOW DATABASES » sur le serveur de base de données. Ensuite, il répertorie
les bases de données présentes sur le serveur.
Syntaxe : Sqoop list-databases (generic-args) (list-databases-args)
2. L’outil Sqoop « list-tables » : il analyse et exécute la requête « SHOW
TABLES » sur une base de données particulière.
2
Syntaxe : Sqoop list-tables (generic-args) (list-tables-args)
3. L’outil Sqoop « eval » : il permet :
• L’évaluation de tous les types de requêtes SQL (DDL ou DML)
• L’exécution rapide des requêtes SQL simples sur une base de données. Ensuite,
les résultats sont imprimés sur la console.
• La prévisualisation des requêtes d’importation Sqoop afin de s’assurer qu’ils
importent les données souhaitées.

L’outil ne permet pas :

• La vérification de la connexion à la base de données depuis Sqoop .


Syntaxe : Sqoop eval (generic-args) (eval-args)
4. L’outil Sqoop import : cet outil d’importation Sqoop est un outil utilisé pour
importer des tables de SGBDR vers HDFS.

Chaque ligne d’un tableau est considérée comme un enregistrement dans HDFS.

Sqoop importe toutes les tables sous forme de tables individuelles du SGBDR au
HDFS.

Syntaxe : Sqoop import (generic-args) (eval-args)

• Les arguments de la commande d’importation :

Figure 2 : liste des arguments d’importation.

3
• Les importations possibles : importation d’une table vers Apache Hive,
importation vers une destination HDFS (répertoire), importation d’une partie des
données d’une table, importation incrémentielle.
L’importation incrémentielle est une technique qui importe uniquement les
nouvelles lignes ajoutées dans une table. Il est nécessaire d’ajouter les options
suivantes : incremental append, check-column, last value.

5. L’outil Sqoop « import-all-tables » :


Syntaxe : Sqoop import-all-tables (generic-args) (import-args)

NB : toutes les tables doivent avoir une clé primaire.

6. L’outil Sqoop « export » : « export » est un outil qui exporte un ensemble de


fichiers HDFS vers un SGBDR.
• Les conditions d’utilisation de « export » : la table doit exister dans la base de
données cible, les fichiers d’entrée sont lus et analysés selon les délimiteurs
spécifiés par l’utilisateur dans un ensemble d’enregistrements.

Syntaxe : Sqoop export (generic-args) (export-args)

• Les arguments de la commande « d’exportation » :

Figure 3 : liste des arguments d’exportation.

7. L’outil SQOOP « job » : si la même commande est répétée plusieurs fois, par
exemple le scénario de l’importation incrémentielle.

NB : par défaut les Jobs sont enregistrés dans un référentiel privé stocké dans
$HOME/Sqoop/.

4
• Les arguments de la commande « job » :

Figure 4 : les arguments de la commande job

V. Caractéristiques d’Apache Sqoop :

Apache Sqoop possède plusieurs fonctionnalités clés qui en font un outil efficace pour
l’intégration de données. L’une de ses caractéristiques les plus importantes est sa capacité à
importer et exporter de gros volumes de données entre Hadoop et les bases de données
relationnelles. Cela permet de déplacer les données rapidement et efficacement, sans
intervention manuelle.

Une autre caractéristique importante d’Apache Sqoop est sa prise en charge des importations
et des exportations incrémentielles. Cela signifie que seules les données nouvelles ou mises à
jour sont transférées, ce qui peut économiser beaucoup de temps et de ressources. De plus,
Sqoop prend en charge les transferts parallèles, ce qui permet d’effectuer simultanément
plusieurs transferts de données, améliorant encore les performances.

VI. Architecture du SQOOP :

Apache Sqoop est conçu selon une architecture client/serveur. Le Sqoop s’exécute sur le
cluster Hadoop et communique avec le serveur Sqoop qui se trouve sur le système de
stockage relationnel.

Cette architecture permet à Sqoop de transférer efficacement les données entre les deux
environnements.

5
Figure 5 : architecture import/export du Sqoop.

1. Architecture SQOOP import : l’outil qui importe les tables individuelles de


RDBMS vers HDFS s’appelle l’outil d’importation SQOOP. Dans HDFS, chaque ligne
est comme un enregistrement. Lors de la soumission d’une commande SQOOP, chaque
tâche principale est divisée en sous-tâches et gérée individuellement en interne par
« Map Task ». Lors de la définition d’une tâche « Map », chaque sous-tâche importe
une partie des données dans l’écosystème Hadoop, ainsi toutes les tâches « Map »
importent l’ensemble des données collectivement.

Figure 6 : architecture du Sqoop (importation).

2. Architecture Sqoop export : L’outil qui exporte un ensemble de fichiers du HDFS


vers un SGBDR est un outil d’exportation SQOOP. Ces fichiers se comportent comme

6
des entrées dans SQOOP, qui contiennent également des enregistrements, sont appelées
des lignes dans une table.

Figure 7 : architecture du Sqoop (exportation).

VII. Configuration Sqoop :

a. Télécharger MySQL – Installer – Community-version.msi


• Installer MySQL-version
• Exécuter cette instruction dans MySQL Workbench
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password
BY ‘password_au_choix’
• Démarrer MySQL-version command line client
b. Télécharger SQOOP-version.bin__HADOOP-version-Alpha.tar.gz
• Extraire vers C:\hadoop puis renommer par Sqoop
c. Configurer les variables d’environnement
• System variable name SQOOP_HOME et value C:\hadoop\Sqoop
• Ajouter C:\hadoop\Sqoop\bin au path
d. Install MySQL connector java
• Télécharger mysql-connector-java-version.bin.jar
• Copier le fichier mysql-connector-java-version.bin.jar vers C:\hadoop\Sqoop\lib
• Sqoop help job
• Sqoop list-databases –connect jdbc :mysql://localhost/ --username root –
passeword password_saisi_précédemment

7
• Masquer le mot de passe par l’option -p (facultatif)
• Sqoop list-databases –connect jdbc :mysql://localhost/database_name –
username root -P

VIII. Fonctionnalités clés du Sqoop :

1. Importation et exportation de données : Sqoop offre la possibilité d’importer des


données depuis des bases de données relationnelles vers Hadoop, ainsi que d’exporter des
données depuis Hadoop vers des bases de données stockées dans Hadoop en utilisant des
outils tels que MapReduce, Hive ou Spark.
2. Prise en charge de diverses sources de données : Sqoop prend en charge une
grande variété de sources de données relationnelles, notamment MySQL, Oracle,
PostgreSQL, SQL Server, etc. Cela permet aux utilisateurs d’interagir avec différentes
bases de données sans avoir à écrire du code spécifique à chaque source.
3. Parallélisme et tolérance aux pannes : Sqoop utilise le parallélisme pour
transférer les données de manière efficace et rapide. Il divise automatiquement les tâches
en sous-tâches qui peuvent être exécutées en parallèle sur le cluster Hadoop. De plus,
Sqoop gère automatiquement la reprise sur panne, ce qui garantit l’intégrité des données
même en cas d’échec du transfert initial.

IX. Utilisation dans des cas réels :

Apache Sqoop est utilisé dans de nombreux cas réels, notamment :

• Transfert régulier de données : Sqoop permet de planifier des transferts réguliers


de données entre les systèmes de stockage relationnels et Hadoop, ce qui facilite
les flux de travail d’analyse.
• Migration de données : il est couramment utilisé pour migrer de grandes
quantités de données d’une base de données traditionnelle vers une solution
Hadoop.
• Intégration de données : Sqoop facilite l’intégration des données provenant de
différentes sources dans un lac de données centralisé.

8
X. Considérations relatives à la sécurité :

Lorsqu’il s’agit d’intégration de données, la sécurité est une préoccupation majeure. Apache
Sqoop dispose de plusieurs fonctionnalités de sécurité intégrées qui aident à atténuer les risques.
Par exemple, il prend en charge l’authentification sécurisée et le chiffrement pour le transfert
de données entre les systèmes. En outre, il permet aux utilisateurs de spécifier les tables et les
colonnes à importer ou à exporter, ce qui limite l’exposition des données sensibles.

Cependant, il existe encore des vulnérabilités potentielles qui doivent être corrigées. Il est
important de s’assurer que seuls les utilisateurs autorisés ont accès au système et que les mots
de passe sont stockés en toute sécurité. Une surveillance et un audit réguliers peuvent également
aider à identifier toute activité suspecte.

XI. Conclusion :

En conclusion, Apache Sqoop est un outil puissant pour l’intégration de données qui offre
de nombreux avantages aux entreprises. Sa capacité à importer et exporter des données
provenant de diverses sources en fait un composant essentiel de tout pipeline de traitement
de données. Grâce à sa prise en charge des importations/exportations incrémentielles et
parallèles, Sqoop peut gérer efficacement de gros volumes de données. De plus, les
connecteurs Sqoop permettent de se connecter à différentes sources de données, tandis que
les tâches Sqoop permettent d’automatiser les transferts de données.

Malgré ses limites, Apache Sqoop reste un choix populaire pour l’intégration de données en
raison de sa facilité d’utilisation et de sa compatibilité avec Hadoop. En suivant les
meilleures pratiques et en tenant compte des considérations de sécurité, les entreprises
peuvent tirer le meilleur parti de cet outil puissant et atteindre leurs objectifs d’intégration
de données.

Vous aimerez peut-être aussi