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
    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に接続することを表します。