https://segmentfault.com/a/1190000011616473
一、Hive 跑批
1.建表
默认第一个字段会作为hbase的rowkey。
2.导入数据
将userid插入到列key,作为hbase表的rowkey。
二、生成中间的HFile
-Dimporttsv.bulk.output : HFile输出目录
-Dimporttsv.columns:HBase表中的列簇、列名称,注意顺序与Hive表一致。
binlog_ns:hbase_hfile_load_table :binlog_ns 名称空间下的hbase_hfile_load_table表
hdfs://namespace1/apps/hive/warehouse/original_tmp_db.db/hbase_hfile_table : 是Hive 表original_tmp_db.hbase_hfile_table的数据路径
ImportTsv 会去读取 Hive表数据目录中的文件,并分析 hbase table 的region 分布, 生成对应region的hfile, 放到 -Dimporttsv.bulk.output目录下
三、通过bulkload 加载HFile到HBase表
读取HFile目录下文件,加载到HBase表中
上一篇咱们讲了通过hive映射为hbase表导数据,这儿我么再讲一下通过hive,使用hbase原生jar生成hfile再bulkload到hbase,可以做到hive解偶
本篇适用于适用于数据量较大的场景。
具体的 *** 作步骤如下:
启动hive,添加需要的jar包
创建hive表
注意:
这儿输出格式一定要为:HiveHFileOutputFormat。
/hdfs/hive_hbase/cf是生成的hfile在HDFS上的路径,其中cf为Hbase的family。
可以向hive表中插入数据,然后查看HDFS的该目录下是否有文件
通过bulkload导入到hbase
创建对应的hbase表,其中cf为family,应和上一步对应
执行bulkhead,将数据导入到hbase中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)