hbase之bulkload

需求。如何把hdfs的数据转入hbase? datax?spark?flink?

不不不,直接用hbase自带的命令即可。参考 http://hbase.apache.org/2.2/book.html 

前提。hdfs存储格式为text

hbase之bulkload_第1张图片

hbase数据为 列族 是0 列名是ou_code ou_level

hbase之bulkload_第2张图片

1把数据放到hdfs上去。这个如果你的表存储格式为text直接用存储目录也行

二将文件转化为hfile

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,0:ou_code,0:ou_level -Dimporttsv.bulk.output=/user/devuser/warehouse/cc_test_load_hbase/output jl:test_load /user/devuser/warehouse/cc_test_load_hbase/input/test_load_hbase

说明

importtsv.columns 是hbase的rowkey 列族列名

output 不能存在否则报错

jl:test_load hbase表明

/user/devuser/warehouse/cc_test_load_hbase/input/test_load_hbase hdfs文件

hbase之bulkload_第3张图片

会采用mr的形式将格式转化为hfile 到输出目录

加载数据到hbase

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /user/devuser/warehouse/jl_test_load_h jl:test_load

hbase之bulkload_第4张图片

查询HBASE数据,发现数据已经到了

hbase之bulkload_第5张图片

——————————————————————————————————————————————————————————————————————————————————————————

最后说下为啥要用这个命令转化

根据大佬说法。

这个命令是属于直接将hdfs文件转化为hbase的存储文件,不经过hbase的regionserver,不会影响hbase的查询和写入性能。

如果你使用hbase 读hive和写hbase的方法,1会影响hive的读,2会影响hbase的写性能,明显没有上面的好。

 

你可能感兴趣的:(hbase,hbase,bulkload)