hive 和hbase 有啥区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive 和hbase 有啥区别相关的知识,希望对你有一定的参考价值。
hbase和hive的主要区别是:他们对于其内部的数据的存储和管理方式是不同的,hbase其主要特点是仿照bigtable的列势存储,对于大型的数据的存储,查询比传统数据库有巨大的优势,而hive其产生主要应对的数据仓库问题,其将存在在hdfs上的文件目录结构映射成表。主要关注的是对数据的统计等方面。适合的场景:hbase:适合大型数据存储,其作用可以类比于传统数据库的作用,主要关注的数据的存取。hive:适合大数据的管理,统计,处理,其作用类比于传统的数据仓库,主要关注的数据的处理。总结:应对大数据的时候,如果你偏重于数据存储查询hbase无疑是更加适合,而你关注的是对大数据的处理结果查询,比如你查询的时候有类似于count,sum等函数操作 hive就能满足你的需求,一般有些项目都输在hive里面进行数据处理,然后将结果导入mysql等数据库或者hbase中进行查询,至于mysql与hbase的选择 比较倾向于你的处理之后的数据量 参考技术A Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Hadoop。Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务。Hive被分区为表格,表格又被进一步分割为列簇。列簇必须使用schema定义,列簇将某一类型列集合起来(列不要求schema定义)。例如,“message”列簇可能包含:“to”, ”from” “date”, “subject”, 和”body”. 每一个 key/value对在Hbase中被定义为一个cell,每一个key由row-key,列簇、列和时间戳。在Hbase中,行是key/value映射的集合,这个映射通过row-key来唯一标识。Hbase利用Hadoop的基础设施,可以利用通用的设备进行水平的扩展。本回答被提问者采纳 参考技术B 1、Hbase: 基于Hadoop数据库,是一种NoSQL数据库;HBase表是物理表,适合存放非结构化的数据。
2、hive:本身不存储数据,通过SQL来计算和处理HDFS上的结构化数据,依赖HDFS和MapReduce;hive中的表是纯逻辑表。
Hive 和 HBase 区别
-
-
数据仓库,Hive 的本质其实就相当于将 HDFS 中已经存储的文件在Mysql中做了一个双射关系,以方便使用 HQL 去管理查询
-
用于数据分析、清洗,Hive 适用于离线的数据分析和清洗,延迟较高
-
基于 HDFS、MapReduce,Hive存储的数据依旧在DataNode上,编写的 HQL 语句终将是转换为MapReduce代码执行
-
-
HBase
-
数据库,是一种面向列存储的非关系型数据库
-
用于存储结构化和非结构化的数据,适用于单表非关系型数据的存储,不适合做关联查询,类似 JOIN 等操作
-
基于HDFS,数据持久化存储的体现形式是 Hfile,存放于 DataNode 中,被ResionServer 以 region 的形式进行管理
-
延迟较低,接入在线业务使用,面对大量的企业数据,HBase 可以直线单表大量数据的存储,同时提供了高效的数据访问速度
-
Hive
以上是关于hive 和hbase 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章