前言
我们考虑为什么要将hive与hbase结合,出于hbase有唯一主键的缘故可以将其作为存储,顺手能帮我们完成海量数据“去重”的etl处理,而hive能作为我们统计计算。两者结合简直就是双剑合臂~~,但效果怎么样呢?
目的
基于多种hiveSQL去重方式失败后,考虑过使用mysql做近期数据去重的方式,然而不能满足全量去重的业务需求,所以考虑使用hbase的唯一主键来达到全量“去重”的效果。
测试环境
hadoop-1.0.3
hive-0.9.0
hbase-0.94.2
zookeeper-3.3.5
1namenode,5datanode
sqoop
测试指标
1.mysql->hbase sqoop执行命令执行效率
2.hiveSQL查询统计hive&hbase表执行效率
3.hive&hbase表copy数据成hive表效率
4.hbase稳定性
测试结果
1.mysql->hbase sqoop执行命令执行效率
mysql数据条数:93559
cpu耗时:26.280s
执行耗时:91.0148s
小结:sqoop将mysql记录转化成hbase PUT对象,批量入库至hbase,效率很高,能满足要求。
2.hiveSQL查询统计hive&hbase表执行效率
数据量:1616374
sql:select count(*) from t1;
case | cpu cost | 执行cost |
hive&hbase | 10 minutes 45 seconds | 728.647 seconds |
hive | 25 seconds | 64.815 seconds |
小结:统计效率很慢,远不能满足需求。
3.hive&hbase表copy数据成hive表效率
数据量:1616374
sql:insert into table t1 select * from t2;
case | cpu cost | 执行cost |
hive&hbase->hive | 12 minutes 13 seconds | 1113.729 seconds |
hive->hive | 1 minutes 7 seconds | 84.3 seconds |
小结:hiveSQL copy hive&hbase表数据,其实也是mapreduce程序,需要查询hbase表,而hbase的查询效率低,直接导致mapreduce耗时长。
4.hbase稳定性
在运行过程当中,没有遇到hbase死节点的情况。
针对hive结合hbase的情形,出现过hive创建的hbase表不能删除的情况,hive表数据导入hive&hbase表执行过程中假死的现象(在执行hive scan,很慢导致)。
总结
hive&hbase表的统计计算是基于hbase,效果相当不理想,没有达到“双剑合臂”的效果,后续调整hbase参数后继续测试,见下篇。
参考文献
http://search-hadoop.com/m/xAweX1bqjoB1&subj=Re+Hbase+Hive+integration+performance+issues
http://www.cnblogs.com/imac/archive/2012/11/04/2753301.html
分享到:
相关推荐
被编译的hive-hbase-handler-1.2.1.jar,用于在Hive中创建关联HBase表的jar,解决创建Hive关联HBase时报FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop....
配置,测试,导入数据详细操作,CREATE TABLE hive_hbase_table(key int, value string,name string) hadoop jar /usr/lib/hbase/hbase-0.90.4-cdh3u3.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY, catgyname...
hive和hbase整合的时候,如果出现不兼容的情况需要手动编译:hive-hbase-hander-1.2.2.jar把这个jar替换掉hive/lib里的那个jar包
由于大数据里面涉及到非关系型数据库如hive、kudu、hbase等的数据迁移,目前涉及到的迁移工具都没有支持hive数据库的事务表的迁移,如果hive库里面存在大量的事务表的时候,目前的工具都是不支持的,例如华为的CDM,...
HBase2.1.3整合Hive3.1.2,Hive官方的hive-hbase-handler-3.1.1.jar包不好用,自己编译后的,确认好用
hive0.8.1和hbase0.92.0集成的hive-hbase-handler.Jar包,里面包含:hbase-0.92.0.jar、hbase-0.92.0-tests.jar、hive-hbase-handler-0.9.0-SNAPSHOT.jar。经测试没有问题。
hive和hbase的整合所需要的编译后的jar包。 注意:这里的hbase版本为:1.2.1 hive的版本为:1.2.1
该文档保护了目前比较流行的大数据平台的原理过程梳理。Hadoop,Hive,Hbase,Spark,MapReduce,Storm
hive0.10.0和hbase0.94.4集成的hive-hbase-handler.Jar包,经测试没有问题。
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
hive与hbase整合经验谈
Hive-1.2.1与HBase-1.3.1兼容处理的jar包 hive-hbase-handler-1.2.2.jar
Hadoop Hive与Hbase整合配置
详细介绍了Hive,Hbase,MySQL的区别和优缺点分析
大数据工具篇之Hive与HBase整合完整教程
5、资源价值:大数据组件搭建的详细实践步骤、一次性提供较全面的常用大数据集群及组件安装部署内容、资源是博主结合官网文档+网上各类搭建文档+本人亲自实践后总结整合的文档(包括过程踩坑记录+对应解决方案)。
基于hadoop的,java实现hive快速导数据到Hbase解决方案。
HIVE建表时可以指定映射关系直接读取HBASE的数据,相当于有了一个HBASE向HIVE的通道。那HIVE向HBASE有通道吗?本文主要讲述了Hive库数据如何入到HBASE中。