Hive 数据导入 HBase

https://segmentfault.com/a/1190000011616473

一、Hive 跑批
1.建表

create table  original_tmp_db.hbase_hfile_table(key String, userid string,times string,updatetime string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' STORED AS TEXTFILE;

默认第一个字段会作为hbase的rowkey。

2.导入数据

insert into table original_tmp_db.hbase_hfile_table select userid,userid,times,updatetime from original_tmp_db.mskyhlzh_xxxx_wxrank_ckitimes;

将userid插入到列key,作为hbase表的rowkey。

二、生成中间的HFile

hbase  org.apache.hadoop.hbase.mapreduce.ImportTsv    -Dimporttsv.bulk.output=hdfs://namespace1/tmp/rmdb/test/cf  -Dimporttsv.columns="HBASE_ROW_KEY,cf:USERID,cf:TIMES,cf:UPDATETIME"  binlog_ns:hbase_hfile_load_table hdfs://namespace1/apps/hive/warehouse/original_tmp_db.db/hbase_hfile_table

-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表中

     
hbase  org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs://namespace1/tmp/rmdb/test/cf  binlog_ns:hbase_hfile_load_table
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容