Hive和HBase
一、两者的定义
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相关推荐
- hive删除hbase数据_Hive进阶:Hive通过外部表操作Hbase数据
概述: HBase: 查询效率比较高,常为实时业务提供服务,但是其查询方式比较单一,只能通过row方式get单条数据,或者通过scan加过滤器的方式扫描数据表获取数据. Hive: hive用来存储结 ...
- HIVE和HBASE区别
http://www.cnblogs.com/justinzhang/p/4273470.html https://www.zhihu.com/question/21677041 1. 两者分别是什么 ...
- hive与hbase整合
配置环境. hadoop 2.4 hbase 0.98.3 hive 0.13.1(源用的mysql) 配置. 分2种情况(1.hbase与hive在一台机器上,2.hbase与hive不在同一台机器 ...
- 大数据:Hive和Hbase的区别于优势
1. 前言 最近在研究大数据相关知识,Hive和Hbase是之前本科的时候调研过的两个数据仓库.现在特把这两个数据仓库拿来总结以下,这两个数据仓库各自由各自的特点,可以应用与不同的应用场景.对于大数据 ...
- 浅谈Hive和HBase区别
出处: http://www.cnblogs.com/zlslch/p/5659641.html . 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库.通 ...
- Hive与Hbase结合使用
hive的启动需要使用到zookeeper, 所以, 要么自己搭建zookeeper, 要么跟其它东西一起使用, 我这里做的是跟hbase一起使用的zookeeper, 因为hbase自带zookee ...
- hive与hbase整合方式和优劣
分别安装hive 和 hbase 1.在hive中创建与hbase关联的表 create table ganji_ranks (row string,num string) STORED BY 'or ...
- hive和hbase区别和联系
作者:有点文 链接:https://www.zhihu.com/question/21677041/answer/185664626 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)
本文转自:https://www.cnblogs.com/yfb918/p/10855170.html 一.说明: 将关系型数据库中的数据导入到 HDFS(包括 Hive, HBase) 中,如果导入 ...
最新文章
- php连接mysqli面向过程,PHP基础知识总结:MySQLi 面向过程
- Scala元组数据的访问
- Spring框架第一天知识总结
- 给你一个K8S的“发行版”
- 论中国和欧洲程序员对加班的态度
- 小程序运行时相关信息
- 什么是Maven神器?
- 归并排序(数组指针详细讲解,图例分析)
- Atitit 循环处理的新特性 for...else...
- Mac 安装和配置 Maven
- Lint 静态代码检查工具
- 优麒麟19.1安装HP扫描仪驱动
- CentOS7安装谷歌浏览器
- Flutter 自定义实现时间轴、侧边进度条
- sklearn和libsvm吗_机器学习笔记(3)-sklearn支持向量机SVM
- matlab示波器坐标调整,SIMULINK示波器参数设置
- TCP 的 3 次握手 4 次挥手,小学生都能看懂
- Python 网络爬虫工具:httpx 和 parsel(对比测评)
- 如何重新设置苹果id密码_忘记苹果手机ID密码怎么办?不要着急,只需三招,轻松解决...
- 有1000瓶药水,其中只有一瓶有毒。现在用小白鼠进行实验,小白鼠只要服用任意量有毒药水就会在24小时内死亡。问至少要用多少只小白鼠进行实验才能检测出哪瓶药水有毒?
热门文章
- python产生5个随机数_Python和numpy生成随机数
- java语言修饰符$_Java语言中的修饰符
- php中register_global,PHP安全之register_globals的on和off的区别
- 第六代微型计算机是,AMD Carrizo第六代A系列处理器技术解析
- 激光点云格式转换 bin 相互 pcd转换
- “AttributeError: ‘str‘ object has no attribute ‘decode‘ “
- 100. Leetcode 377. 组合总和 Ⅳ (动态规划-完全背包)
- python爬虫基础(二)~工具包: 下载包requests、urllib和解析包BeautifulSoup(bs4)、lxml.etree.xpath
- torch_geometric 笔记:nn.ChebNet
- MATLAB从入门到精通-MATLAB结构矩阵的输出