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

你可能感兴趣的:(Hive 数据导入 HBase)