{eval=Array;=+count(Array);}
一、区别:
1、Hbase: 基于Hadoop数据库,是一种NoSQL数据库;HBase表是物理表,适合存放非结构化的数据。
2、hive:本身不存储数据,通过SQL来计算和处理HDFS上的结构化数据,依赖HDFS和MapReduce;hive中的表是纯逻辑表。
Hbase主要解决实时数据查询问题,
Hive主要解决数据处理和计算问题,
二者通常协作配合使用。
二、适用场景:
1、Hbase:海量明细数据的随机实时查询,采集的网页数据存储;
2、hive:适用于离线的批量数据计算,一般用于查询分析统计。
这两个东西我都用过一段时间,很高兴一起来讨论这个问题。
首先来说一下这两者都是hadoop大数据生态圈中的一员。底层的数据存储都是使用的hdfs,除此之外其实两者的关系并不大。
下面简单的分别说一下两者
1. Hbase的本质就是一个数据库,一个nosql
2. 是一个具有主备模式、分布式、可动态增删节点的分布式存储系统
3.厉害之处:使用普通的硬件配置,实现了存储并处理大量的数据
4. 特定 是列式存储,所以是nosql
1.hive不能算做是数据库,只能是hadoop的一个数据仓库工具,
2 .可以将结构化的数据文件映射为一张 数据库表
3.提供了HQL(类sql)查询功能
4.在操作时,实际上是利用MapReduce去处理hdfs的数据
1. hive是为了简化MapReduce而用的,并不是用类存放数据的,本质上还是在做运算,
Hbase是真正的数据库,是用来存放超大量数据的,且插入、查询速度极快
2.用途:hive用来做数据统计分析,分析hdfs数据
hbase用来做分布式nosql数据库
上述就是对两者的介绍和区别,欢迎大家评论讨论! 关爱程序媛!!!祝大家出任CTO,喜欢的欢迎关注,点赞!!!哈哈。
Hbase是什么?
Hbase是一个架构在Hdfs文件系统上的列式存储,是开源的,分布式,面向列的数据库。适合于非结构化数据存储的数据库。
Hbase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,可以在廉价的PC Server搭建大规模结构化存储集群.
1,HBase位于Hadoop生态系统的结构化存储层。
2,HDFS作为其底层的文件存储
3,MapReduct为Hbase提供高性能的计算能力
4,Zookeeper为HBase提供了稳定的服务和failover的能力
Hive是什么?
hive是一个基于Hadoop的一个数据仓库工具。可以将结构化数据映射为一张数据库表,并且提供sql的查询能力,可以将sql换换为MapReduce任务进行。
下面我们看看Hive的架构图:
1,用户接口,hive主要有三个接口,CLI(CLI启动的时候会同时气筒一个Hive的副本),Client(hive的客户端,连结hive server),web UI(通过浏览器访问)
2,元数据存储,hive将元数据存储在数据库中如:mysql。
3,Driver(解释器、编译器、优化器、执行器):完成词法分析,语法分析,优化,编译,优化以及查询计划的生成,随后由MapReduce使用。
4,Hadoop ,hive的数据存储在Hdfs中。大部分的查询由MapReduce完成。
Hbase
上面我们分别看了Hbase的特点,hive的特点,那么Hbase和Hive的差别是什么以及各自的使用场景是什么?
Hbase和Hive 二者都是以Hdfs为文件存储。
Hbase支持列扩展,可以对单元格修改。采取K-V的设计,因此查询效率比较高,一般用于延迟忍耐低的场景;还有就是经常需要扩展属性,修改属性场景。
Hbase的查询一般通过命令窗口进行,语句比较负责,但是hive的采用标准的sql语法,门槛低,上手简单。当然Hbase也有Phoenix可以去支持 sql这样的语法操作。
下面看看hbase具体的应用场景:
千万并发、PB存储、KV基础存储、动态列、强同步、稀疏表、二级索引、SQL
对象存储:头条类、新闻类的的新闻、网页、图片存储在HBase之中,一些病毒公司的病毒库也是存储在HBase之中。
时序数据:HBase之上有OpenTSDB模块,可以满足时序类场景的需求。
推荐画像:用户的画像,是一个比较大的稀疏矩阵。蚂蚁的风控就是构建在HBase之上。
时空数据:主要是轨迹、气象网格之类,滴滴打车的轨迹数据主要存在HBase之中,另外在技术所有大一点的数据量的车联网企业,数据都是存在HBase之中
CubeDB OLAP:Kylin一个cube分析工具,底层的数据就是存储在HBase之中,不少客户自己基于离线计算构建cube存储在hbase之中,满足在线报表查询的需求。
消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。
消息/订单:在电信领域、银行领域,不少的订单查询底层的存储,另外不少通信、消息同步的应用构建在HBase之上。
Hive 不能支持列扩展,支持追加,好像在新版本中可以支持修改,但是效率比较低。Hive处理的数据的吞吐量高,文件越大,hive的优势就约明显。一半用于 延迟忍耐高的场景。
下面再来看看Hive的具体使用场景:
1,分析网络日志。
2,ETL清洗数据。
3,构建数据仓库。
4,数据挖掘
那么Hbase和Hive在具体的使用场景各自在什么位置呢?我们可以通过下图来了解下:
通过ETL工具将数据源抽取到HDFS存储,通过hive清洗处理和计算原始数据,对数据进行标准化,统一化。如果是面向海量的查询场景可以存储Hbase,数据应用从Hbase中查询数据。
最后在总结:Hbase和Hive本身都不能存储数据。二者都是对Hdfs上的文件在做了一次组织。从而适应不同的场景。Hbase 在与查询,动态列场景更有优势,但是无法进行数据分析和挖掘。二Hive本身无法在低延迟的场景下使用。Hive可以处理大量数据的ETL清洗。构建统一的标准的数据仓库,从而提供基础数据,共上层数据分析。所以hive更加偏向于数据分析。
数据僧,祝愿每个在数据道路上的人越走越好。欢迎大家在评论区留言,大家一起讨论。
HBase是一个数据模型,类似于Google的大表,旨在提供对大量结构化数据的快速随机访问。本教程提供了HBase的介绍,在Hadoop文件系统上设置HBase的过程以及与HBase shell交互的方法。它还介绍了如何使用java连接到HBase,以及如何使用java执行HBase的基本操作。http://codingdict.com/article/8125
Hive是一个数据仓库基础设施工具,用于处理Hadoop中的结构化数据。它位于Hadoop的顶部,用于汇总大数据,并使查询和分析变得轻松。这是一个简短的教程,介绍如何将Apache Hive HiveQL与Hadoop分布式文件系统结合使用。本教程可以成为您成为Hive成功Hadoop开发人员的第一步。http://codingdict.com/article/8149
要给你回答这两个所有的底层为不太合适、我就给你举一个易懂的例子。
Hbase 对应就的就是 Mongodb 非关系型数据
Hive 对应的就是 Mysql 关系型数据库
如果你要深入研究、单单一个组件都能让你随便研究一年。
所以先从业务出发去考虑使用哪个、量上来了再研究优化。
0
回答0
回答0
回答0
回答0
回答1
回答0
回答0
回答0
回答0
回答