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的数据是无法更新的,除非去更改hdfs的原始文件,更改原始文件需要生成一个新的文件,十分费事。同时hive是进行海量数据统计分析,无法实时查询。而hbase可以进行数据更新和海量数据的快速查询,弥补hive的不足,同时hbase的语法简直蛋疼,无法友好的进行数据的统计分析,但是hive可以。
所以hive和hbase整合后,数据更新,实时查询已经统计分析都可以。大致就是这么个原因
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)