hive和hbase区别11

xuyatao xuyatao     2022-08-25     494

关键词:

对于刚接触大数据的用户来说,要想区分Hive与HBase是有一定难度的。本文将尝试从其各自的定义、特点、限制、应用场景等角度来进行分析,以作抛砖引玉之用。

 Hive是什么?

Apache Hive是一个构建于Hadoop(分布式系统基础架构)顶层的数据仓库,注意这里不是数据库。Hive可以看作是用户编程接口,它本身不存储和计算数据;它依赖于HDFS(Hadoop分布式文件系统)和MapReduce(一种编程模型,映射与化简;用于大数据并行运算)。其对HDFS的操作类似于SQL—名为HQL,它提供了丰富的SQL查询方式来分析存储在HDFS中的数据;HQL经过编译转为MapReduce作业后通过自己的SQL 去查询分析需要的内容;这样一来,即使不熟悉MapReduce 的用户也可以很方便地利用SQL 语言查询、汇总、分析数据。而MapReduce开发人员可以把己写的mapper 和reducer 作为插件来支持Hive 做更复杂的数据分析。

HBase是什么?

Apache HBase是运行于HDFS顶层的NoSQL(=Not Only SQL,泛指非关系型的数据库)数据库系统。区别于Hive,HBase具备随即读写功能,是一种面向列的数据库。HBase以表的形式存储数据,表由行和列组成,列划分为若干个列簇(row family)。例如:一个消息列簇包含了发送者、接受者、发送日期、消息标题以及消息内容。每一对键值在HBase会被定义为一个Cell,其中,键由row-key(行键),列簇,列,时间戳构成。而在HBase中每一行代表由行键标识的键值映射组合。Hbase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

特性

遵从JDBC的Hive不但可以让具SQL知识的用户来间接执行MapReduce作业,同时里面也整合了目前基于SQL的操作工具。不过,由于默认的数据读取是全表遍历的,其时间的耗费也不可避免地相对较大。尽管如此,不尽相同的Hive分区方法,其遍历读取的数据量也是能够有所限制的。Hive分区允许对存储在独立文件上的数据进行筛选查询,返回的是筛选后的数据。例如针对日期的日志文件访问,前提是该类文件的文件名包含日期信息。

HBase以键值对的形式储存数据。其包含了4种主要的数据操作方式:

 

  1. 添加或更新数据行
  2. 扫描获取某范围内的cells
  3. 为某一具体数据行返回对应的cells
  4. 从数据表中删除数据行/列,或列的描述信息

 

列信息可用于获取数据变动前的取值(透过HBase压缩策略可以删除列信息历史记录来释放存储空间)。

限制

Hive不支持常规的SQL更新语句,如:数据插入,更新,删除。因为其对数据的操作是针对整个数据表的。同时该特点也使得数据查询用时以数分钟甚至数小时来进行计算。此外,其MapReduce转换过程必须遵从预定义的转换规则。

HBase的数据查询是有一套属于自己类似SQL的操作语言的,这个需要一定的学习来掌握。此外,要运行HBase,ZooKeeper是需要配备的。ZooKeeper是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

应用举例

Hive适用于网络日志等数据量大、静态的数据查询。例如:用户消费行为记录,网站访问足迹等。但是不适用于联机实时在线查询的场合。

HBase能在大数据联机实时查询场合大展身手。例如:Fackbook就利用其对用户间的传送的消息进行联机实时分析。

小结

Hive与HBase两者是基于Hadoop上不同的技术。Hive是一种能执行MapReduce作业的类SQL编程接口,Hbase是一种非关系型的数据库结构。结合这两者自身的特点,互相结合使用或许能收到相得益彰的效果。例如:利用Hive处理静态离线数据,利用HBase进行联机实时查询,而后对两者间的结果集进行整合归并,从而使得数据完整且永葆青春,为进一步的商业分析提供良好支持。

hive和hbase有啥关系和区别

...se与hive都是架构在hadoop之上的。都是用hadoop作为底层存储区别:2.Hive是建立在Hadoop之上为了减少MapReducejobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目。3.想象你在操作RMDB数据库,如果是全表扫描,... 查看详情

hive与hbase的区别与联系

Hive与HBase的区别与联系二者区别Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能。Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。hive... 查看详情

浅谈hive和hbase区别

出处:http://www.cnblogs.com/zlslch/p/5659641.html. 两者分别是什么?      ApacheHive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被... 查看详情

hive和hbase的区别

一、两者分别是什么:  ApacheHive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce.虽然Hive提供了SQL查询功能,但是Hive不能... 查看详情

hive和hbase的区别

1.两者分别是什么?   ApacheHive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce.虽然Hive提供了SQL查询功能,但是Hive不能... 查看详情

hive和hbase有啥区别

hbase和hive的主要区别是:他们对于其内部的数据的存储和管理方式是不同的,hbase其主要特点是仿照bigtable的列势存储,对于大型的数据的存储,查询比传统数据库有巨大的优势,而hive其产生主要应对的数据仓库问题,其将存在... 查看详情

hive和hbase的区别

1.两者分别是什么?   ApacheHive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce.虽然Hive提供了SQL查询功能,但是Hive不能... 查看详情

hive与hbase区别

...ase都具有独特的品质,使它们更适合特定任务。一些主要区别包括:虽然这两个工具都是Hadoop的衍生产品,但它们不为用户提供相同的功能。然而,尽管存在差异,ApacheHive和ApacheHBase都是处理大数据时优先考虑的两块工具和解决... 查看详情

hive与hbase

...ive主要解决数据处理和计算问题,一般是配合使用。一、区别:Hbase:Hadoopdataba 查看详情

钻头不显示 hive 或 hbase 表

】钻头不显示hive或hbase表【英文标题】:drillnotshowinghiveorhbasetables【发布时间】:2014-11-0417:18:59【问题描述】:我已经创建了一个hbase和hive表来存储一些数据记录信息。我可以从命令行查询hbase和hive没有问题。hbase:扫描MVLogger;... 查看详情

hive与hbase的区别

1. 两者分别是什么?      ApacheHive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce.虽然Hive提供了SQL查询功... 查看详情

hbase相对hive查询速度快的对比

...对较长,不属于实时读写。在其架构上HBase和Hive有很大的区别.     架构介绍:  Hive架构  –(1)用户接口主要有三个:CLI,Client和WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户... 查看详情

hive与hbase的区别

从使用方面讲Hive是一个构建在Hadoop平台上的数据仓库,可以将结构化的数据文件映射为一张数据库表。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化成Map/Reduce。HBase是基于HDFS平台的Ke... 查看详情

hive是啥,hive与关系型数据库的区别

参考技术A全不同应用场景吧,HBase速度比Hive快了不知道多少。HBase是非关系型数据库(KV型),对key做索引,查询速度非常快(相比较Hive),适合实时查询;而Hive是关系型数据结构,适合做后期数据分析。和单机的MySQL,Oracle比... 查看详情

hadoophdfshivehbase之间的关系

...时查询,如日志明细、交易清单、轨迹行为等Hive与HBase的区别与联系1、区别Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能。Hive本身不存储和计算数据,它完... 查看详情

Hbase checkAndPut 和 checkAndMutate 有啥区别?

】HbasecheckAndPut和checkAndMutate有啥区别?【英文标题】:WhatisthedifferencebetweenHbasecheckAndPutandcheckAndMutate?HbasecheckAndPut和checkAndMutate有什么区别?【发布时间】:2016-11-2209:47:32【问题描述】:在Hbase1.2.4中checkAndPut和checkAndMutate有什么区... 查看详情

何时使用 Hadoop、HBase、Hive 和 Pig?

】何时使用Hadoop、HBase、Hive和Pig?【英文标题】:WhentouseHadoop,HBase,HiveandPig?【发布时间】:2012-12-0409:24:23【问题描述】:使用Hadoop或HBase或Hive有什么好处?据我了解,HBase避免使用map-reduce,并且在HDFS之上具有面向列的存储。Hive... 查看详情

如何加载分区到 Hbase 表的 hive orc

】如何加载分区到Hbase表的hiveorc【英文标题】:HowtoloadhiveorcpartitionedtoHbasetable【发布时间】:2020-11-2407:45:45【问题描述】:我完全开始使用hbase数据存储,我们目前正在迁移具有orc文件格式的hive外部文件系统。过去2年的数据需... 查看详情