6.HBase_應用_常用資料遷移方式
阿新 • • 發佈:2018-11-06
一般情況下,我們的資料來源是:RDBMS或日誌檔案。資料遷移常用方式:使用HBase Put方式、HBase自帶MR方式、bulk load工具方式。
Java API操作HBase Put、自定義HBase MR兩種方式,我們在前面已經使用過了,重點看一下importtsv、bulk load方式。
1.HBase使用importtsv匯入資料
實際上類似與我們自己寫的mapreduce程式遷移資料
# 1. 設定環境變數 export HBASE_HOME=/usr/hdp/2.5.3.0-37/hbase export HADOOP_HOME=/usr/hdp/2.5.3.0-37/hadoop export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` # 不使用mapredcp而使用classpath的原因是classpath中帶有zookeeper需要載入的lib包 # export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` # 2. 使用hbase自帶的importtsv工具 # 第一行:執行jar包 第二行:被匯入資料的hbase表列(預設檔案格式製表符隔開) # 第三行:hbase表 第四行:存放載入資料檔案的hdfs目錄 yarn jar /usr/hdp/2.5.3.0-37/hbase/lib/hbase-server-1.1.2.2.5.3.0-37.jar importtsv \ -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:address \ emp \ /user/hbase/importtsv
2.HBase使用bulk load匯入資料
利用HBase資料資訊以特定資料格式存放在HDFS上,直接在HDFS中生成HFile持久化資料檔案,然後上傳到合適位置,即:完成巨量資料快速入庫。配合mapreduce完成,高效便捷,不佔用region資源,在大資料量寫入時能極大的提高寫入效率,降低HBase節點寫入的壓力。
# 1. 設定HADOOP_CLASSPATH環境變數 export HBASE_HOME=/usr/hdp/2.5.3.0-37/hbase export HADOOP_HOME=/usr/hdp/2.5.3.0-37/hadoop export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase classpath` # 不使用mapredcp而使用classpath的原因是classpath中帶有zookeeper需要載入的lib包 # export HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` # 2. 使用importtsv工具生成HFile檔案 # 第一行:執行jar包 第二行:指定 yarn jar /usr/hdp/2.5.3.0-37/hbase/lib/hbase-server-1.1.2.2.5.3.0-37.jar importtsv \ -Dimporttsv.separator=, \ -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:age,info:address \ -Dimporttsv.bulk.output=/user/hbase/hfileoutput \ emp \ /user/hbase/importtsv # 3. 使用hbase的MR工具completebulkload # 將生成的hfile檔案移動到hbase regions對應的hdfs路徑,以完成hbase資料的載入 yarn jar /usr/hdp/2.5.3.0-37/hbase/lib/hbase-server-1.1.2.2.5.3.0-37.jar completebulkload \ /user/hbase/hfileoutput \ emp