Apache Sqoopは、ApacheHadoopとリレーショナルデータベースなどの構造化データストア間でバルクデータを効率的に転送するために設計されたツールです。たとえば、MySQL、Oracle、MicrosoftSQLServer。リレーショナルデータベースとHadoopの間でデータをインポートおよびエクスポートできます。 HBaseやCassandra(NoSQLデータベース)などの半構造化データソースとの間でインポート/エクスポートすることもできます。 Sqoopは、クライアントとサーバーの2つの別個の部分を組み込んだ1つのバイナリパッケージとして出荷されます。
- サーバー-クラスター内の単一ノードにサーバーをインストールする必要があります。このノードは、すべてのSqoopクライアントのエントリポイントとして機能します。
- クライアント-クライアントは任意の数のマシンにインストールできます。
以下は、Ubuntu16.04でApacheSqoopをセットアップする手順です。必要なSqoopパッケージをダウンロードすると、sqoop-1.99.7-bin-hadoop200.tar.gz
が含まれます。 ファイル。
1)wgetを使用してSqoopをダウンロードする
ファイルシステムで以下のコマンドを使用してSqoopをダウンロードします。
wget http://archive.apache.org/dist/sqoop/1.99.7/sqoop-1.99.7-bin-hadoop200.tar.gz
ファイルが正しくダウンロードされたかどうかを確認します。
2)Sqooptarファイルを抽出する
ダウンロードしたファイルを解凍します。
tar -xvf sqoop-1.99.7-bin-hadoop200.tar.gz
ファイルが正しく抽出されたかどうかを確認してください。
3)Sqoopディレクトリを移動する
sqoopディレクトリを/usr/ lib /
に移動しますsudo mv sqoop-1.99.7-bin-hadoop200 /usr/lib/
SqoopサーバーはHadoopクライアントとして機能するため、Hadoopライブラリ(Yarn、Mapreduce、およびHDFS jarファイル)と構成ファイル(core-site.xml、mapreduce-site.xmlなど)がこのノードで使用可能である必要があります。
4)HadoopおよびSqoop環境変数を設定する
.bashrcファイルにHadoop環境変数を設定する必要があります。
# 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
また、.bashrcファイルでsqoop環境変数を設定します。
sudo gedit .bashrc
.bashrcファイルの以下の行を入力してください。
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
以下のコマンドを使用して、変更を有効にします。
source .bashrc
5)必要なJarファイルをSqoopサーバーのlibディレクトリにコピーします
hadoop-common、hadoop-mapreduce、hadoop-hdfs、hadoop-yarnjarを/usr/lib/sqoop-1.99.7-bin-hadoop200/server/lib
にコピーします (sqoopサーバーのlibディレクトリ)。以下は、すべてのjarファイルをsqoopサーバーのlibディレクトリにコピーする必要がある場所からのパスです。
/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を編集します
Sqoopサーバーは、サーバーを実行しているユーザーではなく、特定のジョブを開始したユーザーとして、クラスター内外のHDFSやその他のリソースにアクセスするためにユーザーを偽装する必要があります。 Hadoopのcore-site.xmlを構成し、それに以下の2つのプロパティを追加する必要があります。
<property>
<name>hadoop.proxyuser.ubuntu.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.ubuntu.groups</name>
<value>*</value>
</property>
7)メタデータリポジトリを初期化する
Sqoop 2サーバーを初めて起動する前に、メタデータリポジトリを初期化する必要があります。
./bin/sqoop2-tool upgrade
8)Sqoopサーバーを起動します
sqoopサーバーを起動します。
./bin/sqoop2-server start
sqoopサーバーサービスが開始されているかどうかを確認します。
jps
9)Sqoopクライアントを起動します
Sqoopディストリビューションアーティファクトをターゲットマシンにコピーし、目的の場所に解凍するだけで、クライアントを起動できます。私もクライアントと同じマシンを使用しています。 Sqoopクライアントを起動します
./bin/sqoop2-shell
10)RDBMSコネクタをダウンロード
以下のリンクを使用して、MySQL、Oracle、およびSQLServerのコネクタをダウンロードします。これらのコネクタは、SqoopとRDBMSを接続するために必要です。
MySQLコネクタ:ダウンロード
Oracleコネクタ:ダウンロード
Microsoft SQL Serverコネクタ:ダウンロード
すべてのコネクタがダウンロードされたかどうかを確認します。
ls Downloads/
11)RDBMSコネクタを使用するように環境変数を設定します
すべてのコネクタをディレクトリに移動し、そのディレクトリを環境変数として設定します。
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/
結論
出来上がり!これで、Ubuntu16.04でApacheSqoopが正常にセットアップされました。これで、Sqoopを使用してデータをインポート/エクスポートする準備が整いました。次のステップは、任意のRDBMSコネクタを使用して、RDBMSからHDFSまたはHDFSからRDBMSにデータをインポート/エクスポートすることです。