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
网友评论