Apache Sqoop est un outil conçu pour transférer efficacement des données en masse entre Apache Hadoop et des magasins de données structurés tels que des bases de données relationnelles. Par exemple MySQL, Oracle, Microsoft SQL Server. Vous pouvez importer et exporter des données entre des bases de données relationnelles et hadoop. Vous pouvez également importer/exporter depuis/vers des sources de données semi-structurées, par exemple HBase et Cassandra (bases de données NoSQL). Sqoop est livré sous la forme d'un package binaire qui intègre deux parties distinctes :client et serveur.
- Serveur :vous devez installer le serveur sur un seul nœud de votre cluster. Ce nœud servira alors de point d'entrée pour tous les clients Sqoop.
- Client :les clients peuvent être installés sur un nombre illimité de machines.
Vous trouverez ci-dessous les étapes pour configurer Apache Sqoop sur Ubuntu 16.04. Téléchargez le package Sqoop requis et celui-ci aura sqoop-1.99.7-bin-hadoop200.tar.gz
fichier.
1) Téléchargez Sqoop en utilisant wget
Téléchargez Sqoop en utilisant la commande ci-dessous sur votre système de fichiers.
wget http://archive.apache.org/dist/sqoop/1.99.7/sqoop-1.99.7-bin-hadoop200.tar.gz
Vérifiez si le fichier a été téléchargé correctement.
2) Extraire le fichier tar Sqoop
Extrayez le fichier téléchargé.
tar -xvf sqoop-1.99.7-bin-hadoop200.tar.gz
Vérifiez si le fichier a été extrait correctement.
3) Déplacer le répertoire Sqoop
Déplacez le répertoire sqoop vers /usr/lib/
sudo mv sqoop-1.99.7-bin-hadoop200 /usr/lib/
Le serveur Sqoop agit comme un client Hadoop, donc les bibliothèques Hadoop (fichiers Yarn, Mapreduce et HDFS jar) et les fichiers de configuration (core-site.xml, mapreduce-site.xml, ...) doivent être disponibles sur ce nœud.
4) Définir les variables d'environnement Hadoop et Sqoop
Vous devriez avoir des variables d'environnement Hadoop définies dans le fichier .bashrc.
# Set Hadoop-related environment variables
export HADOOP_HOME=$HOME/hadoop-2.7.3
export HADOOP_CONF_DIR=$HOME/hadoop-2.7.3/etc/hadoop
export HADOOP_MAPRED_HOME=$HOME/hadoop-2.7.3
export HADOOP_COMMON_HOME=$HOME/hadoop-2.7.3
export HADOOP_HDFS_HOME=$HOME/hadoop-2.7.3
export HADOOP_YARN_HOME=$HOME/hadoop-2.7.3
Définissez également les variables d'environnement sqoop dans le fichier .bashrc.
sudo gedit .bashrc
Mettez les lignes ci-dessous dans le fichier .bashrc.
exporter SQOOP_HOME=/usr/lib/sqoop-1.99.7-bin-hadoop200 export PATH=$PATH:$SQOOP_HOME/bin exporter SQOOP_CONF_DIR=$SQOOP_HOME/conf exporter SQOOP_CLASS_PATH=$SQOOP_CONF_DIR
Utilisez la commande ci-dessous pour appliquer les modifications.
source .bashrc
5) Copier les fichiers Jar requis dans le répertoire lib de Sqoop Server
Copiez hadoop-common, hadoop-mapreduce, hadoop-hdfs, hadoop-yarn jars dans /usr/lib/sqoop-1.99.7-bin-hadoop200/server/lib
(répertoire lib du serveur sqoop). Vous trouverez ci-dessous les chemins à partir desquels vous devez copier tous les fichiers jar dans le répertoire lib du serveur sqoop.
/home/ubuntu/hadoop-2.7.3/share/hadoop/common /home/ubuntu/hadoop-2.7.3/share/hadoop/common/lib /home/ubuntu/hadoop-2.7.3/share/hadoop/hdfs /home/ubuntu/hadoop-2.7.3/share/hadoop/hdfs/lib /home/ubuntu/hadoop-2.7.3/share/hadoop/mapreduce /home/ubuntu/hadoop-2.7.3/share/hadoop/mapreduce/lib /home/ubuntu/hadoop-2.7.3/share/hadoop/yarn /home/ubuntu/hadoop-2.7.3/share/hadoop/yarn/lib
6) Modifier core-site.xml
Le serveur Sqoop devra usurper l'identité des utilisateurs pour accéder à HDFS et à d'autres ressources à l'intérieur ou à l'extérieur du cluster en tant qu'utilisateur qui a commencé le travail donné plutôt qu'en tant qu'utilisateur qui exécute le serveur. Vous devez configurer le core-site.xml de Hadoop et y ajouter les 2 propriétés ci-dessous.
<property>
<name>hadoop.proxyuser.ubuntu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.ubuntu.groups</name>
<value>*</value>
</property>
7) Initialiser le référentiel Metadeta
Le référentiel de métadonnées doit être initialisé avant de démarrer le serveur Sqoop 2 pour la première fois.
./bin/sqoop2-tool upgrade
8) Démarrer le serveur Sqoop
Démarrez le serveur sqoop.
./bin/sqoop2-server start
Vérifiez si le service du serveur sqoop a démarré.
jps
9) Démarrer le client Sqoop
Copiez simplement l'artefact de distribution Sqoop sur la machine cible et décompressez-le à l'emplacement souhaité et vous pouvez démarrer votre client. J'utilise également la même machine que le client. Démarrer le client Sqoop
./bin/sqoop2-shell
10) Télécharger les connecteurs RDBMS
Téléchargez les connecteurs de MySQL, Oracle et SQL Server en utilisant les liens ci-dessous. Ces connecteurs sont nécessaires pour établir la connexion entre Sqoop et RDBMS.
Connecteur MySQL :Télécharger
Connecteur Oracle :Télécharger
Connecteur Microsoft SQL Server :Télécharger
Vérifiez si tous les connecteurs ont été téléchargés.
ls Downloads/
11) Définir une variable d'environnement pour utiliser les connecteurs RDBMS
Déplacez tous les connecteurs vers un répertoire et définissez ce répertoire comme variable d'environnement.
sudo mkdir -p /var/lib/sqoop2/
sudo chmod 777 /var/lib/sqoop2/
mv Downloads/*.jar /var/lib/sqoop2/
ls -l /var/lib/sqoop2/
export SQOOP_SERVER_EXTRA_LIB=/var/lib/sqoop2/
Conclusion
Voila ! Vous avez configuré avec succès Apache Sqoop sur Ubuntu 16.04. Vous êtes maintenant prêt à importer/exporter des données à l'aide de Sqoop. L'étape suivante consiste à utiliser l'un des connecteurs RDBMS et à importer/exporter des données de RDBMS vers HDFS ou HDFS vers RDBMS.