分享

hive为什么与hbase整合

pig2 2014-4-11 12:35:30 发表于 问题解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 24 88212
1.hive为什么与hbase整合?
2.hive整合hbase的优缺点是什么?
网上很多hive与hbase整合文档,但是为什么要整合,下面给大家对照一下,就能看出其中的原因了。
首先我们看一下


1.hbase目前支持的功能

1. 通过SQL语句来查询hbase中的表数据

List<DynaBean> rows = HbaseQuery.select("SQL");
目前支持的SQL语句

SELECT * FROM report1                       /* 查询所有数据 */
SELECT A, B FROM report1                    /* 只查询某些列 */
SELECT * FROM report1 WHERE A = 1 and B = 2 /* 过滤条件只能是AND逻辑, 而且是等于关系 */
SELECT * FROM report1 limit 3 offset 2      /* 分页 */



2. 从oracle数据库中导入表数据到hbase

OracleDataLoader.loadTable("TABLE_NAME", new String[] { "PK_COLUMN_NAME" });




2.hive支持的功能


因内容比较多,这里只列出大纲

一、关系运算
二、数学运算
三、逻辑运算
四、数值计算
五、日期函数
六、条件函数
七、字符串函数
八、集合统计函数
九、复合类型构建操作
十、复杂类型访问操作
十一、复杂类型长度统计函数

更详细内容,可以查看hive支持sql大全


通过上面我们可以看出hive对于sql的支持,有强大的功能。我们不需要写过多的自定义函数,亦能实现一些复杂的查询等。

3.整合后的效果


我们明白了整合的原因,因为整合后,我们就通过Hive,读/写HBase的表了


4.hive与hbase整合的优缺点


优点:
1.Hive方便地提供了Hive QL的接口来简化MapReduce的使用,而HBase提供了低延迟的数据库访问。如果两者结合,可以利用MapReduce的优势针对HBase存储的大量内容进行离线的计算和分析。

2.操作方便,hive提供了大量系统功能


缺点:
性能的损失,hive有这样的功能, 他支持通过类似sql语句的语法来操作hbase中的数据, 但是速度慢。


已有(24)人评论

跳转到指定楼层
quenlang 发表于 2014-9-27 22:02:07
学习了,讲的很透彻,感谢分享
回复

使用道具 举报

momsbaby 发表于 2015-3-11 12:54:37
HIVE为什么不直接在HDFS上呢?在HBASE上和在HDFS上,有什么区别?
回复

使用道具 举报

pig2 发表于 2015-3-11 13:03:49
momsbaby 发表于 2015-3-11 12:54
HIVE为什么不直接在HDFS上呢?在HBASE上和在HDFS上,有什么区别?

hive、hbase存储都是基于hadoop的,也就是他们都是hdfs文件
回复

使用道具 举报

momsbaby 发表于 2015-3-11 13:09:24
pig2 发表于 2015-3-11 13:03
hive、hbase存储都是基于hadoop的,也就是他们都是hdfs文件

看了版主的不少文章,想请教下,用hive搭建一个数据仓库的话,有没有一个清晰的路线?刚接触这块,有点困惑。
回复

使用道具 举报

jixianqiuxue 发表于 2015-3-11 14:45:08
momsbaby 发表于 2015-3-11 13:09
看了版主的不少文章,想请教下,用hive搭建一个数据仓库的话,有没有一个清晰的路线?刚接触这块,有点困 ...

这个不错,可以参考
使用 Hive 构建数据仓库---为棒球信息构建一个数据仓库设计示例

回复

使用道具 举报

june_fu 发表于 2015-3-11 17:32:15
pig2 发表于 2015-3-11 13:03
hive、hbase存储都是基于hadoop的,也就是他们都是hdfs文件

既然都是HDFS文件,那优势在哪里?是否说hive查询Hbase中的表速度就比Hive直接查询要快呢??谢谢
回复

使用道具 举报

尘世随缘 发表于 2015-4-8 09:34:53
june_fu 发表于 2015-3-11 17:32
既然都是HDFS文件,那优势在哪里?是否说hive查询Hbase中的表速度就比Hive直接查询要快呢??谢谢

整合的优势:
比如在Hbase中要查询一个名字按姓名分组统计的SQL,普通SQL语句如下:
select name,count(name) from table1 where group by name;
但是如果在hbase中的话,那么这样的需求没有好的实现办法,只能去写MR操作了。
但是在hive中可以直接运行一个SQL:select name,count(name) from table1 where group by name;就能得到结果了。


但是楼主说的缺点是hive查询慢,这个原因还是不理解,慢在哪里?为什么会慢?都是操作hdfs文件,
回复

使用道具 举报

june_fu 发表于 2015-4-9 23:07:46
尘世随缘 发表于 2015-4-8 09:34
整合的优势:
比如在Hbase中要查询一个名字按姓名分组统计的SQL,普通SQL语句如下:
select name,count ...

多谢回复,同样疑惑啊。
回复

使用道具 举报

123下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条