[SQL]hive与hbase整合~批处理/实时查询


AdMaster 如何驾驭百亿级Key实时Redis 集群 – lxw的大数据田地
http://lxw1234.com/archives/2016/09/716.htm
数据初始化之前,我们先利用【hbase将日志的id聚合去重】,划定TTL的范围,一般是1个月,这样可以砍掉近1个月未出现的id。另外在Redis中设置过期时间是1个月,当有访问并命中时,对key进行续命,延长过期时间,未在1个月出现的自然淘汰。这样可以针对稳定cookie或id有效,实际证明,续命的方法对idfa和imei比较实用,长期积累可达到非常理想的命中。


hive为什么与hbase整合_百度知道
http://zhidao.baidu.com/link?url=b3OSH9P7s0Ax6SYIy8wzrgj6924RUblFqc7cICer35O6sR_nx60E3yd1QKHAHsfo2mj7_sPbcDVriYW7Wv-PUytCRk5UP1y7qiyud-eZDEC
hive的数据是无法更新的,除非去更改hdfs的原始文件,更改原始文件需要生成一个新的文件,十分费事。同时hive是进行海量数据统计分析,无法实时查询。
而hbase可以进行数据更新和海量数据的快速查询,弥补hive的不足,同时hbase的语法简直蛋疼,无法友好的进行数据的统计分析,但是hive可以。
所以hive和hbase整合后,数据更新,实时查询已经统计分析都可以。


十二、Hive整合HBase,操作HBase表
HBase是被设计用来做k-v查询的,但有时候,也会遇到基于HBase表的复杂统计,写MR很不方便。Hive考虑到了这点,提供了操作HBase表的接口。
关于Hive操作HBase表的原理,请参考我之前的博文:
http://lxw1234.com/archives/2015/04/101.htm


Hive over HBase和Hive over HDFS性能比较分析 – lxw的大数据田地
http://lxw1234.com/archives/2015/04/101.htm
二、Hive over HBase原理

Hive与HBase利用两者本身对外的API来实现整合,主要是靠HBaseStorageHandler进行通信,利用 HBaseStorageHandler,Hive可以获取到Hive表对应的HBase表名,列簇以及列,InputFormat和 OutputFormat类,创建和删除HBase表等。
Hive访问HBase中表数据,实质上是通过MapReduce读取HBase表数据,其实现是在MR中,使用HiveHBaseTableInputFormat完成对HBase表的切分,获取RecordReader对象来读取数据。
对HBase表的切分原则是一个Region切分成一个Split,即表中有多少个Regions,MR中就有多少个Map;
读取HBase表数据都是通过构建Scanner,对表进行全表扫描,如果有过滤条件,则转化为Filter。当过滤条件为rowkey时,则转化为对rowkey的过滤;
Scanner通过RPC调用RegionServer的next()来获取数据;


你可能感兴趣的:([SQL]hive与hbase整合~批处理/实时查询)