使用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