一、两者的定义

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,它的本质就是将SQL语句转换为MapReduce任务进行运行。

HBase是一个高可靠性、高性能、面向列、可伸缩的一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为Java。

489034603

二、两者的特点

Hive帮助熟悉SQL的人运行MapReduce任务。因为它是JDBC兼容的,同时,它也能够和现存的SQL工具整合在一起。运行Hive查询会花费很长时间,因为它会默认表中所有的数据。分区允许在数据集上运行过滤查询,这些数据集存储在不同的文件夹内,查询的时候只指定文件夹(分区)中的数据。

HBase通过存储key/value来工作。它支持四种主要的操作:增加或者更新行,查看一个范围内的cell,获取指定的行,删除指定的行、列或者是列的版本。版本信息用来获取历史数据(每一行的历史数据可以被删除,然后通过Hbase compactions就可以释放出空间)。虽然HBase包括表格,但是schema仅仅被表格和列簇所要求,列不需要schema。

489034603

三、两者的区别 (加图片下面的数字进学习交流羣)

1) Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。而HBase表是物理表,适合存放非结构化的数据。

2) Hive是基于MapReduce来处理数据,而MapReduce处理数据是基于行的模式;HBase处理数据是基于列的而不是基于行的模式,适合海量数据的随机访问。

3) HBase的表是疏松的存储的,因此用户可以给行定义各种不同的列;而Hive表是稠密型,即定义多少列,每一行有存储固定列数的数据。

4)Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,因此不能保证处理的低迟延问题;而HBase是近实时系统,支持实时查询。

5) Hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。

6) Hive提供完整的SQL实现,通常被用来做一些基于历史数据的挖掘、分析。而HBase不适用与有join,多级索引,表关系复杂的应用场景。

489034603

四、两者的整合

因为Hive和HBase拥有各自独特的优点,又都是在hadoop作为底层存储,所以为什么不将它们整合到一起呢?

而实际上,现在Hive与HBase确实已经进行整合了,它们整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类,整合方式如图所示:

489034603

Hive集成HBase可以有效利用HBase数据库的存储特性,如行更新和列索引等。在集成的过程中注意维持HBase jar包的一致性。Hive集成HBase需要在Hive表和HBase表之间建立映射关系,也就是Hive表的列(columns)和列类型(column types)与HBase表的列族(column families)及列限定词(column qualifiers)建立关联。每一个在Hive表中的域都存在于HBase中,而在Hive表中不需要包含所有HBase中的列。

Hive和HBase相关推荐

  1. hive删除hbase数据_Hive进阶:Hive通过外部表操作Hbase数据

    概述: HBase: 查询效率比较高,常为实时业务提供服务,但是其查询方式比较单一,只能通过row方式get单条数据,或者通过scan加过滤器的方式扫描数据表获取数据. Hive: hive用来存储结 ...

  2. HIVE和HBASE区别

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

  3. hive与hbase整合

    配置环境. hadoop 2.4 hbase 0.98.3 hive 0.13.1(源用的mysql) 配置. 分2种情况(1.hbase与hive在一台机器上,2.hbase与hive不在同一台机器 ...

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

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

  5. 浅谈Hive和HBase区别

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

  6. Hive与Hbase结合使用

    hive的启动需要使用到zookeeper, 所以, 要么自己搭建zookeeper, 要么跟其它东西一起使用, 我这里做的是跟hbase一起使用的zookeeper, 因为hbase自带zookee ...

  7. hive与hbase整合方式和优劣

    分别安装hive 和 hbase 1.在hive中创建与hbase关联的表 create table ganji_ranks (row string,num string) STORED BY 'or ...

  8. hive和hbase区别和联系

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

  9. Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)

    本文转自:https://www.cnblogs.com/yfb918/p/10855170.html 一.说明: 将关系型数据库中的数据导入到 HDFS(包括 Hive, HBase) 中,如果导入 ...

最新文章

  1. php连接mysqli面向过程,PHP基础知识总结:MySQLi 面向过程
  2. Scala元组数据的访问
  3. Spring框架第一天知识总结
  4. 给你一个K8S的“发行版”
  5. 论中国和欧洲程序员对加班的态度
  6. 小程序运行时相关信息
  7. 什么是Maven神器?
  8. 归并排序(数组指针详细讲解,图例分析)
  9. Atitit 循环处理的新特性 for...else...
  10. Mac 安装和配置 Maven
  11. Lint 静态代码检查工具
  12. 优麒麟19.1安装HP扫描仪驱动
  13. CentOS7安装谷歌浏览器
  14. Flutter 自定义实现时间轴、侧边进度条
  15. sklearn和libsvm吗_机器学习笔记(3)-sklearn支持向量机SVM
  16. matlab示波器坐标调整,SIMULINK示波器参数设置
  17. TCP 的 3 次握手 4 次挥手,小学生都能看懂
  18. Python 网络爬虫工具:httpx 和 parsel(对比测评)
  19. 如何重新设置苹果id密码_忘记苹果手机ID密码怎么办?不要着急,只需三招,轻松解决...
  20. 有1000瓶药水,其中只有一瓶有毒。现在用小白鼠进行实验,小白鼠只要服用任意量有毒药水就会在24小时内死亡。问至少要用多少只小白鼠进行实验才能检测出哪瓶药水有毒?

热门文章

  1. python产生5个随机数_Python和numpy生成随机数
  2. java语言修饰符$_Java语言中的修饰符
  3. php中register_global,PHP安全之register_globals的on和off的区别
  4. 第六代微型计算机是,AMD Carrizo第六代A系列处理器技术解析
  5. 激光点云格式转换 bin 相互 pcd转换
  6. “AttributeError: ‘str‘ object has no attribute ‘decode‘ “
  7. 100. Leetcode 377. 组合总和 Ⅳ (动态规划-完全背包)
  8. python爬虫基础(二)~工具包: 下载包requests、urllib和解析包BeautifulSoup(bs4)、lxml.etree.xpath
  9. torch_geometric 笔记:nn.ChebNet
  10. MATLAB从入门到精通-MATLAB结构矩阵的输出