sqoopのインストールと使用

1865 ワード

sqoopのバージョンはhadoopのバージョンに対応します.私はhadoop-1.0を使っていますから.4,そこで私がダウンロードしたsqoopはsqoop-1.4です.3.bin__hadoop-1.0.0.tar.gz.
 
ここではhadoopがインストールされていると仮定します.環境変数を設定していない可能性があります.いくつかの環境変数sqoopが使用されます.
export PATH=/home/hadoop/sqoop-1.4.3/bin:$PATH export HADOOP_HOME=/home/hadoop/hadoop-1.0.4 export HADOOP_COMMON_HOME=${HADOOP_HOME} export HADOOP_MAPRED_HOME=${HADOOP_HOME}
これらの環境変数を~/に追加する.bashrcファイルに行ってsource~/.bashrcは変更を有効にします.
 
次にhadoopクラスタを起動し、sqoop helpを実行して実行できるかどうかを確認します.
 
mysqlデータベースからhdfsにインポートする場合、sqoopは直接サポートされ、追加のjarパッケージは必要ありません.他のデータベースであればoracle(oracleを使用しています)など、oracleのjdbcドライバjarパッケージを${sqoop_home}/libディレクトリの下に置く必要があります.私が使用するoracleのドライバはojdbc 14です.JAr、ネット上ではojdbc 6と言います.jar、いいはずです.
 
次にデータをインポートしてみます.インポートデータは一般的にライトスクリプトで実行されるので、便利です.例えばスクリプトを書きましたsh、中身は以下の通りです.
CONNECT_URL=jdbc:oracle:thin:@192.168.27.160:1521:mydb1
ORACLE_NAME=dp
ORACLE_PWD=dp
TABLE_NAME=TEST_TB
COLUMNS=TEST_ID,TEST_NAME
HDFS_PATH=ORA_DATA/${TABLE_NAME}
sqoop import --append --connect $CONNECT_URL --username $ORACLE_NAME --password
$ORACLE_PWD --target-dir $HDFS_PATH --num-mappers 1 --table $TABLE_NAME --column
s $COLUMNS --fields-terminated-by '\001'

前は定数パラメータ、CONNECT_URL:データベースURL、そしてORACLE_NAMEユーザ名、ORACLE_PWDパスワード、TABLE_NAMEはインポートの準備をするテーブル名、COLUMNSはインポートの準備をするカラム名、HDFS_PATHは、インポートされたデータがDFSに格納されているパスであり、ここには相対パスと書かれており、インポートに成功するとhdfs://ip:port/user/hadoop/ORA_DATAディレクトリの下にTEST_を作成TBディレクトリは、そのディレクトリの下にデータが格納されます.sqoop importはインポートコマンドで、パラメータは上で定義したパラメータを使用します.これで別のテーブルをインポートする必要がある場合は、TABLE_を変更するだけです.NAME、COLUMNSの2つのパラメータでいいです.
次に、スクリプトインポートデータを実行します.
chmod 777  sqoop-import.sh
./sqoop-import.sh
そしてhadoopバックグラウンドファイルシステムへhttp://master:50070対応するテーブル名を作成したディレクトリがあるかどうか、データがそのディレクトリにインポートされているかどうかを見てみましょう.