Apache Sqoop è uno strumento progettato per trasferire in modo efficiente dati di massa tra Apache Hadoop e datastore strutturati come i database relazionali. Ad esempio MySQL, Oracle, Microsoft SQL Server. Puoi importare ed esportare dati tra database relazionali e hadoop. È inoltre possibile importare/esportare da/in origini dati semi-strutturate, ad esempio HBase e Cassandra (database NoSQL). Sqoop viene fornito come un pacchetto binario che incorpora due parti separate:client e server.
- Server- Devi installare il server su un singolo nodo nel tuo cluster. Questo nodo fungerà quindi da punto di ingresso per tutti i client Sqoop.
- Client:i client possono essere installati su qualsiasi numero di macchine.
Di seguito sono riportati i passaggi per configurare Apache Sqoop su Ubuntu 16.04. Scarica il pacchetto Sqoop richiesto e questo avrà sqoop-1.99.7-bin-hadoop200.tar.gz
file.
1) Scarica Sqoop usando wget
Scarica Sqoop usando il comando seguente sul tuo filesystem.
wget http://archive.apache.org/dist/sqoop/1.99.7/sqoop-1.99.7-bin-hadoop200.tar.gz
Controlla se il file è stato scaricato correttamente.
2) Estrai il file tar di Sqoop
Estrarre il file scaricato.
tar -xvf sqoop-1.99.7-bin-hadoop200.tar.gz
Controlla se il file è stato estratto correttamente.
3) Sposta la directory Sqoop
Sposta la directory sqoop in /usr/lib/
sudo mv sqoop-1.99.7-bin-hadoop200 /usr/lib/
Il server Sqoop funge da client Hadoop, pertanto le librerie Hadoop (file Yarn, Mapreduce e jar HDFS) e i file di configurazione (core-site.xml, mapreduce-site.xml, ...) devono essere disponibili su questo nodo.
4) Impostare le variabili d'ambiente Hadoop e Sqoop
Dovresti avere le variabili di ambiente Hadoop impostate nel file .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
Inoltre, imposta le variabili di ambiente sqoop nel file .bashrc.
sudo gedit .bashrc
Inserisci le righe sottostanti nel file .bashrc.
esporta SQOOP_HOME=/usr/lib/sqoop-1.99.7-bin-hadoop200 esporta PATH=$PATH:$SQOOP_HOME/bin esporta SQOOP_CONF_DIR=$SQOOP_HOME/conf esporta SQOOP_CLASS_PATH=$SQOOP_CONF_DIR
Usa il comando seguente per rendere effettive le modifiche.
source .bashrc
5) Copia i file Jar richiesti nella directory lib di Sqoop Server
Copia i jar hadoop-common, hadoop-mapreduce, hadoop-hdfs, hadoop-yarn in /usr/lib/sqoop-1.99.7-bin-hadoop200/server/lib
(directory lib server sqoop). Di seguito sono riportati i percorsi da cui è necessario copiare tutti i jar nella directory lib del server 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) Modifica core-site.xml
Il server Sqoop dovrà impersonare gli utenti per accedere a HDFS e altre risorse all'interno o all'esterno del cluster come l'utente che ha avviato un determinato lavoro anziché l'utente che esegue il server. Devi configurare core-site.xml di Hadoop e aggiungervi sotto 2 proprietà.
<property>
<name>hadoop.proxyuser.ubuntu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.ubuntu.groups</name>
<value>*</value>
</property>
7) Inizializza il repository di metadeta
Il repository di metadati deve essere inizializzato prima di avviare il server Sqoop 2 per la prima volta.
./bin/sqoop2-tool upgrade
8) Avvia Sqoop Server
Avvia il server sqoop.
./bin/sqoop2-server start
Controlla se il servizio del server sqoop è stato avviato.
jps
9) Avvia il client Sqoop
Basta copiare l'artefatto di distribuzione Sqoop sul computer di destinazione e decomprimerlo nella posizione desiderata e puoi avviare il tuo client. Sto usando anche la stessa macchina del client. Avvia il client Sqoop
./bin/sqoop2-shell
10) Scarica i connettori RDBMS
Scarica i connettori di MySQL, Oracle e SQL Server utilizzando i collegamenti seguenti. Questi connettori sono necessari per effettuare la connessione tra Sqoop e RDBMS.
Connettore MySQL:download
Connettore Oracle:Scarica
Connettore Microsoft SQL Server:scarica
Controlla se tutti i connettori sono stati scaricati.
ls Downloads/
11) Imposta una variabile di ambiente per utilizzare i connettori RDBMS
Sposta tutti i connettori in una directory e imposta quella directory come variabile di ambiente.
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/
Conclusione
Ecco! Hai configurato correttamente Apache Sqoop su Ubuntu 16.04. Ora sei pronto per importare/esportare dati usando Sqoop. Il passaggio successivo consiste nell'utilizzare uno qualsiasi dei connettori RDBMS e importare/esportare dati da RDBMS a HDFS o da HDFS a RDBMS.