Apache Sqoop ist ein Tool, das für die effiziente Übertragung von Massendaten zwischen Apache Hadoop und strukturierten Datenspeichern wie relationalen Datenbanken entwickelt wurde. Zum Beispiel MySQL, Oracle, Microsoft SQL-Server. Sie können Daten zwischen relationalen Datenbanken und Hadoop importieren und exportieren. Sie können auch aus/in halbstrukturierte Datenquellen importieren/exportieren, zum Beispiel HBase und Cassandra (NoSQL-Datenbanken). Sqoop wird als ein Binärpaket geliefert, das zwei separate Teile enthält - Client und Server.
- Server – Sie müssen den Server auf einem einzelnen Knoten in Ihrem Cluster installieren. Dieser Knoten dient dann als Einstiegspunkt für alle Sqoop-Clients.
- Client- Clients können auf beliebig vielen Rechnern installiert werden.
Nachfolgend finden Sie die Schritte zum Einrichten von Apache Sqoop unter Ubuntu 16.04. Laden Sie das erforderliche Sqoop-Paket herunter und dieses enthält sqoop-1.99.7-bin-hadoop200.tar.gz
Datei.
1) Laden Sie Sqoop mit wget herunter
Laden Sie Sqoop mit dem folgenden Befehl auf Ihr Dateisystem herunter.
wget http://archive.apache.org/dist/sqoop/1.99.7/sqoop-1.99.7-bin-hadoop200.tar.gz
Überprüfen Sie, ob die Datei korrekt heruntergeladen wurde.
2) Extrahieren Sie die Sqoop-Tar-Datei
Extrahieren Sie die heruntergeladene Datei.
tar -xvf sqoop-1.99.7-bin-hadoop200.tar.gz
Überprüfen Sie, ob die Datei korrekt extrahiert wurde.
3) Verschieben Sie das Sqoop-Verzeichnis
Verschieben Sie das sqoop-Verzeichnis nach /usr/lib/
sudo mv sqoop-1.99.7-bin-hadoop200 /usr/lib/
Der Sqoop-Server fungiert als Hadoop-Client, daher müssen Hadoop-Bibliotheken (Yarn, Mapreduce und HDFS-JAR-Dateien) und Konfigurationsdateien (core-site.xml, mapreduce-site.xml, ...) auf diesem Knoten verfügbar sein.
4) Hadoop- und Sqoop-Umgebungsvariablen festlegen
Sie sollten Hadoop-Umgebungsvariablen in der .bashrc-Datei festgelegt haben.
# 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
Legen Sie außerdem sqoop-Umgebungsvariablen in der .bashrc-Datei fest.
sudo gedit .bashrc
Fügen Sie die folgenden Zeilen in die .bashrc-Datei ein.
export SQOOP_HOME=/usr/lib/sqoop-1.99.7-bin-hadoop200 export PATH=$PATH:$SQOOP_HOME/bin export SQOOP_CONF_DIR=$SQOOP_HOME/conf Export SQOOP_CLASS_PATH=$SQOOP_CONF_DIR
Verwenden Sie den folgenden Befehl, um die Änderungen in Kraft zu setzen.
source .bashrc
5) Kopieren Sie die erforderlichen JAR-Dateien in das lib-Verzeichnis von Sqoop Server
Kopieren Sie hadoop-common, hadoop-mapreduce, hadoop-hdfs, hadoop-yarn jars nach /usr/lib/sqoop-1.99.7-bin-hadoop200/server/lib
(sqoop server lib-Verzeichnis). Unten sind die Pfade, von wo aus Sie alle JAR-Dateien in das lib-Verzeichnis des Sqoop-Servers kopieren müssen.
/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) Core-Site.xml bearbeiten
Der Sqoop-Server muss sich als Benutzer ausgeben, um auf HDFS und andere Ressourcen innerhalb oder außerhalb des Clusters als der Benutzer zuzugreifen, der einen bestimmten Job gestartet hat, und nicht als Benutzer, der den Server ausführt. Sie müssen die core-site.xml von Hadoop konfigurieren und ihr die folgenden zwei Eigenschaften hinzufügen.
<property>
<name>hadoop.proxyuser.ubuntu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.ubuntu.groups</name>
<value>*</value>
</property>
7) Metadeta-Repository initialisieren
Das Metadaten-Repository muss initialisiert werden, bevor der Sqoop 2-Server zum ersten Mal gestartet wird.
./bin/sqoop2-tool upgrade
8) Sqoop-Server starten
Starten Sie den Sqoop-Server.
./bin/sqoop2-server start
Überprüfen Sie, ob der Sqoop-Serverdienst gestartet wurde.
jps
9) Sqoop-Client starten
Kopieren Sie einfach das Sqoop-Verteilungsartefakt auf den Zielcomputer und entpacken Sie es am gewünschten Ort, und Sie können Ihren Client starten. Ich benutze auch die gleiche Maschine wie der Kunde. Starten Sie den Sqoop-Client
./bin/sqoop2-shell
10) RDBMS-Konnektoren herunterladen
Laden Sie Konnektoren von MySQL, Oracle und SQL Server über die folgenden Links herunter. Diese Konnektoren werden benötigt, um eine Verbindung zwischen Sqoop und RDBMS herzustellen.
MySQL-Connector:Herunterladen
Oracle-Connector:Herunterladen
Microsoft SQL Server Connector:Herunterladen
Überprüfen Sie, ob alle Konnektoren heruntergeladen wurden.
ls Downloads/
11) Legen Sie eine Umgebungsvariable fest, um RDBMS-Konnektoren zu verwenden
Verschieben Sie alle Konnektoren in ein Verzeichnis und legen Sie dieses Verzeichnis als Umgebungsvariable fest.
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/
Schlussfolgerung
Voila! Sie haben Apache Sqoop erfolgreich auf Ubuntu 16.04 eingerichtet. Jetzt können Sie Daten mit Sqoop importieren/exportieren. Der nächste Schritt besteht darin, einen der RDBMS-Konnektoren zu verwenden und Daten von RDBMS in HDFS oder HDFS in RDBMS zu importieren/exportieren.