sqoopを使ってMySQLからHBaseにデータを導入します。
仕事の需要:MySQLデータベースのデータをHBaseに伝えます。
仕事の経験をアップロードするのは初めてです。 hadoopクラスタは35 である。 MySQLデータベースは31 にあります。最終的に35は31にアクセスできないので、完成方法に変えました。
ステップを実行
ダウンロード
ダウンロード
http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.5.2.tar.gz ダウンロード後に解凍します。/opt/cdh 5/sqoop tar-zxvf sqoop-1.46-cd 5.5.2.tar.gz-C/opt/cdh 5/sqoop
必要なjarバッグ
jdbcドライバパック
コピーmysql-connector-Java-51.31-bin.jarはsqoop/libディレクトリの下にあります。
環境変数の設定
vi etc/profile
データをインポート
仕事の経験をアップロードするのは初めてです。
ステップを実行
ダウンロード
ダウンロード
http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.5.2.tar.gz ダウンロード後に解凍します。/opt/cdh 5/sqoop tar-zxvf sqoop-1.46-cd 5.5.2.tar.gz-C/opt/cdh 5/sqoop
必要なjarバッグ
jdbcドライバパック
コピーmysql-connector-Java-51.31-bin.jarはsqoop/libディレクトリの下にあります。
環境変数の設定
vi etc/profile
export SQOOP_HOME=/opt/cdh5/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
conf/sqoop-env.shを修正します。#Set path to where bin/hadoop is available export HADOOP_COMMON_HOME=/opt/cloud/hadoop-2.6.0-cdh5.4.1/ #Set path to where hadoop-*-core.jar is available export HADOOP_MAPRED_HOME=/opt/cloud/hadoop-2.6.0-cdh5.4.1/ #set the path to where bin/hbase is available export HBASE_HOME=/opt/cloud/hbase-1.0.0-cdh5.4.1/ #Set the path to where bin/hive is available export HIVE_HOME=/opt/cloud/hive-1.1.0-cdh5.4.1/ #Set the path for where zookeper config dir is export ZOOCFGDIR=/opt/cloud/zookeeper-3.4.8/
bin/configure-sqoopを修正します。## Moved to be a runtime check in sqoop.
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
#fi
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HCAT_HOME}" ]; then
# echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
# echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
#fi
#
#if [ ! -d "${ACCUMULO_HOME}" ]; then
# echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
# echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."
# echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'
#fi
テスト./sqoop version
17/05/09 19:02:04 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5-cdh5.4.1
Sqoop 1.4.5-cdh5.4.1
git commit id 8e266e052e423af592871e2dfe09d54c03f6a0e8
Compiled by jenkins on Thu May 7 22:44:23 PDT 2015
右のとおり成功したデータをインポート
./sqoop import --connect jdbc:mysql://10.10.97.116:3306/rsearch --table researchers--hbase-table A--column-family person --hbase-row-key id --hbase-create-table --username 'root' -P
説明:–connect jdbc:mysql://10.10.97.116:3306/rsearch リモートまたはローカルのMysqlサービスのURIを表します。3306はMysqlデフォルトの傍受ポートです。rsearchはデータベースです。他のデータベースなら、OracleのようにURIを修正すればいいです。テーブルレスレスレスレスは、rsearchデータベースのreearhersテーブルをエクスポートすると表しています。hbase-table AはHBaseに表Aを作ると表しています。–column-familypersonは表Aに列族personを作ると表しています。hbase-row-key idは表Aのrow-keyを示しています。reearhers表のidフィールドです。hbase-create-tableはHBaseに表を作ると表しています。–username'root'はユーザーrootを使ってMysqlに接続することを表します。