前言

Hive和HBase是Hadoop生态圈两个非常重要的技术,但对于初学者很容易进行混淆,因此这里做一个简单的总结,希望能帮助大家缕出一条比较清晰的思路

一句话概括

Hive是数据仓库,用来分析HDFS上的数据,不过效率低;HBase是数据库,用来更好的组织HDFS上的数据,以便于更加高效的访问HDFS上的数据。

稍微细致的描述

Hive是运行在Hadoop上的一个工具,准确地讲是一个搜索工具。当对海量数据进行搜索时,Hadoop的计算引擎是MapReduce。但是对MapReduce的操作和编程是非常复杂的。于是Hive的存在就让复杂的编程过程简化成了用SQL语言对海量数据的操作。这大大减轻了程序员的工作量。可以说,Hive的存在让海量数据的增删改查更加方便。其实从Hive的logo就可以看出Hive让大象变成了小蜜蜂,化繁为简是它最本质的亮点。

再来说说HBase,它是Hadoop的子项目,当然也可以理解为一个工具。Hadoop的数据运算是由MapReduce完成的,而数据存储是由HDFS完成的。HDFS是分布式存储,这是Hadoop存储数据的特点,但由此带来的问题就是数据的无序和散乱。HBase的产生,很好地解决了这一问题。HBase能够把这些数据映射成一张哈希表,那么,这些数据一旦成为具有实际存储意义的表之后,就由无序变得有序,从而对数据搜索和操作的效率大大提高了。

稍微细致的概括

  • Hive是查询引擎,而HBase是专门用户非结构化数据的数据存储
  • Hive主要用户批处理(及OLAP),但HBase广泛用于事务处理,其中查询的响应时间不是高度交互的,即OLTP
  • 与Hive不同,HBase中的操作在数据库上实时运行,而不是转换为mapreduce作业
  • HBase用于实时查询,Hive用于分析查询

可能存在的误区

  1. HBase超级快?
    HBase采用的是Key/Value的存储方式,这意味着,即使随着数据量增大,也几乎不会导致查询的性能下降。HBase又是一个列式数据库(对比于传统的行式数据库而言),当你的表字段很多的时候,你甚至可以把其中几个字段放在集群的一部分机器上,而另外几个字段放到另外一部分机器上,充分分散了负载压力。然而,如此复杂的存储结构和分布式的存储方式带来的代价就是:哪怕只是存储少量数据,它也不会很快
    一句话概括:
    HBase并不快,只是当数据量很大的时候它慢的不明显

  2. HBase是数据库,可以做数据分析?
    凡事都不可能只有优点而没有缺点。数据分析是HBase的弱项,因为对于HBase乃至整个NoSQL生态圈来说,基本上都是不支持表关联的。当你想实现group by或者order by的时候,你会发现,你需要写很多的
    代码来实现MapReduce。
    因此,请不要盲目地使用HBase。

  3. HBase数据库可以在任何场景下都可以采用?
    以下情况请不要使用HBase,而采用Mysql或Oracle:

  • 主要需求是数据分析,比如做报表
  • 单表数据量不超过千万

因此,相反的场景就建议采用HBase咯:

  • 单表数据量超千万,而且并发还挺高
  • 数据分析需求较弱,或者不需要那么灵活或者实时
  1. 每条Hive语句都会出发MapReduce任务?
    Hive中对某些情况查询可以避免MapRedeuce任务,也就是所谓的本地模式。
  • select * from table;
  • 对于where语句中过滤条件只是分区字段的情况(无论是否使用LIMIT语句限制输出记录条数)
SELECT * FROM TABLE_NAME WHERE country = ‘CN’ AND province = ‘Beijing’ LIMIT 100;
  • 最好将属性hive.exec.mode.local.auto的值设为true,这样Hive还会尝试使用本地模式执行其他操作

互相搭配使用才是最佳方案

Hive具有高延时的某些限制,而HBase不具备分析功能,将两种技术集成在一起试最佳解决方案。
通常,HBase和Hive在同一Hadoop群集上一起使用。Hive可用作ETL工具,用于批量插入HBase或执行将HBase表中存在的数据与HDFS文件或外部数据存储中存在的数据连接起来的查询。

Hive使用案例

Apache Hive拥有大约0.3%的市场份额,即1902个公司已经在生产中使用Apache Hive。

  • Scribd使用Hive进行临时查询,数据挖掘和面向用户的分析
  • Hive是Hubspot Hadoop管道不可或缺的一部分,用于近实时Web分析
  • 流行的在线广告网络Chitika使用Hive进行数据挖掘和对其4.35亿全球用户群的分析

HBase使用案例

在大数据类别中,HBase的市场份额约为9/1%,即大约有6190家公司使用HBase。公司使用HBase进行时间序列分析或点击流数据存储和分析

  • HBase最初的用例是在Google,该公司想为互联网及其用户存储海量数据库
  • Facebook使用HBase进行实时分析,计算Facebook点赞次数和进行消息传递
  • FINRA金融业监管局使用HBase来存储所有交易图
  • Pinterest使用HBase存储图形数据
  • Flipboard使用HBase为其用户个性化内容供稿

参考1
参考2

Hive vs HBase (配合使用才是最佳方案)相关推荐

  1. 网页中嵌入flash的最佳方案

    http://solomon.athost.net/?p=549 网页中嵌入flash的最佳方案 各种浏览器差异悬殊,开发者应如何在网页中嵌入flash才是最佳方案?本文介绍的原理亦被应用在swfob ...

  2. python 解决最佳方案_python使用列表的最佳方案

    python使用列表的最佳方案,列表,方式,方法,函数,表达式 python使用列表的最佳方案 易采站长站,站长之家为您整理了python使用列表的最佳方案的相关内容. 经常写Python程序的人,列 ...

  3. HIVE和HBASE区别

    http://www.cnblogs.com/justinzhang/p/4273470.html https://www.zhihu.com/question/21677041 1. 两者分别是什么 ...

  4. 大数据:Hive和Hbase的区别于优势

    1. 前言 最近在研究大数据相关知识,Hive和Hbase是之前本科的时候调研过的两个数据仓库.现在特把这两个数据仓库拿来总结以下,这两个数据仓库各自由各自的特点,可以应用与不同的应用场景.对于大数据 ...

  5. 浅谈Hive和HBase区别

    出处: http://www.cnblogs.com/zlslch/p/5659641.html . 两者分别是什么?     Apache Hive是一个构建在Hadoop基础设施之上的数据仓库.通 ...

  6. hive和hbase区别和联系

    作者:有点文 链接:https://www.zhihu.com/question/21677041/answer/185664626 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  7. Hive 整合Hbase(来自学习资料--博学谷)

    1.摘要 Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询.同时也可以将hive表中的数据映射到Hbase中. 2.应用 ...

  8. 查询hive表_大数据中Hive与HBase的区别与联系

    二者区别 Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能. Hive本身不存储和计算数据,它完全依赖于HDFS和MapRe ...

  9. 【华为云技术分享】如何整合hive和hbase

    引言  为什么要集成Hive和HBase Hive和Hbase在大数据架构中处在不同位置,Hive是一个构建在Hadoop基础之上的数据仓库,主要解决分布式存储的大数据处理和计算问题,Hive提供了类 ...

最新文章

  1. 一起谈.NET技术,浅谈如何使用.NET存储XML数据
  2. linux 错误日志 __ratelimit: XXX callbacks suppressed 原因
  3. 与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 部署
  4. it项目经理带一个项目的完整_如何控制IT项目需求范围?千万别让用户把你带沟里……...
  5. wdcp安装mysql_安装wdCP,无法连接mysql,解决方法
  6. pythongui界面复选框数值选择并求和_如何使用Python从图像中分离复选框按钮和复......
  7. 克罗地亚第二狂想曲难度_黄海保级难度增加,将送强力前锋去富力,与建业竞争半个降级名额...
  8. python3安装requests_小小-Centos7安装Python3并安装Requests的方法
  9. 参考文献起止页码怎么写_论文参考文献怎么写?
  10. 软件测试2019:第七次作业
  11. [UVALive 3983] Robotruck
  12. 虎牙面试官:String长度有限制吗?是多少?我:这太...
  13. android禁止wifi,android – 防止WiFi-direct在不使用时关闭
  14. cad lisp程序大集_AUTO CAD 命令大集
  15. 【数据结构】——逆波兰表达式
  16. 苹果cms详细安装方法
  17. Multithreading and Synchronization
  18. IP问问区县级别IP地址库---使用帮助(上篇)
  19. 什么从什么写短句_照样子写句子.(写清“谁或什么 “在什么地方 “做什么或怎么样 ) 例1:小朋友在河边种树. 例2:麻雀在窝里睡着了. 题目和参考答案——青夏教育精英家教网——...
  20. steam动态令牌源码(python版本)

热门文章

  1. [业余项目]黄金点游戏
  2. 傻瓜式硬盘重装win7系统图文加视频教程
  3. 手机端图片滑动切换效果
  4. 多线程程序中操作的原子性--转帖
  5. ASP.NET中的回调技术(CallBack)
  6. 开始使用 TypeScript
  7. 杭电2094--产生冠军(拓扑排序)
  8. 《C语言及程序设计》实践参考——间隔选职工
  9. IEC61850报告服务(报文解析)
  10. 2.6.24内核中对S3C2440的引导启动分析