使用Put API import,缺點:數據保存在內存中,大數據量處理速度慢,數據缺乏過濾api
HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp` \ $HADOOP_HOME/bin/yarn jar \ $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar \ importtsv \ -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:sex,info:age \ user_from_tsv \ /user/cen/data/hbase_import_user.tsv
使用MapReduce存儲成HBase底層文件,優勢,減小HBase集羣插入壓力(不通過插入),下降Job集羣時間提升運行速度多線程
# 跟上述命令不用的是,這個導入並不會將數據導入到HBase而是到一個指定的文件夾 # 使用import生成Hfile文件到HDFS,底層經過MapReduce(只有Map)實現 HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp`:${HBASE_HOME}/conf \ $HADOOP_HOME/bin/yarn jar \ $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar \ importtsv \ -Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:sex,info:age \ -Dimporttsv.bulk.output=/user/cen/hbase/hfileoutput \ user_from_tsv_bulk \ /user/cen/data/hbase_import_user.tsv # 加載數據(非MapReduce),至關於移動數據 HADOOP_CLASSPATH=`$HBASE_HOME/bin/hbase mapredcp`:${HBASE_HOME}/conf \ $HADOOP_HOME/bin/yarn jar \ $HBASE_HOME/lib/hbase-server-1.2.0-cdh5.12.0.jar \ completebulkload \ /user/cen/hbase/hfileoutput \ user_from_tsv_bulk
自定義 MapReduce Job 優勢:史無前例的自由度,缺點:我有一句mmp不知當講不當講併發
csv -> hfile
hfile -> table