hbase的特点,以及和其他nosql数据库的异同

hbase的特点,以及和其他nosql数据库的异同,第1张

NoSQL太火,冒出太多产品了,保守估计也成百上千了。

互联网公司常用的基本集中在以下几种,每种只举一个比较常见或者应用比较成功的例子吧。

1 In-Memory KV Store : Redis

in memory key-value store,同时提供了更加丰富的数据结构和运算的能力,成功用法是替代memcached,通过checkpoint和commit log提供了快速的宕机恢复,同时支持replication提供读可扩展和高可用。

2 Disk-Based KV Store: Leveldb

真正基于磁盘的key-value storage, 模型单一简单,数据量不受限于内存大小,数据落盘高可靠,Google的几位大神出品的精品,LSM模型天然写优化,顺序写盘的方式对于新硬件ssd再适合不过了,不足是仅提供了一个库,需要自己封装server端。

3 Document Store: Mongodb

分布式nosql,具备了区别mysql的最大亮点:可扩展性。mongodb 最新引人的莫过于提供了sql接口,是目前nosql里最像mysql的,只是没有ACID的特性,发展很快,支持了索引等特性,上手容易,对于数据量远超内存限制的场景来说,还需要慎重。

4 Column Table Store: HBase

这个富二代似乎不用赘述了,最大的优势是开源,对于普通的scan和基于行的get等基本查询,性能完全不是问题,只是只提供裸的api,易用性上是短板,可扩展性方面是最强的,其次坐上了Hadoop的快车,社区发展很快,各种基于其上的开源产品不少,来解决诸如join、聚集运算等复杂查询。

hbase的特点:高可靠性、高性能、面向列、可伸缩的。

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

扩展资料

访问接口:

1 Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据

2 HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用

3 Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据

4 REST Gateway,支持REST 风格的>

5 Pig,可以使用Pig Latin流式编程语言来 *** 作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计。

参考资料来源:百度百科-HBase

hbase和hive的主要区别是:他们对于其内部的数据的存储和管理方式是不同的,hbase其主要特点是仿照bigtable的列势存储,对于大型的数据的存储,查询比传统数据库有巨大的优势,而hive其产生主要应对的数据仓库问题,其将存在在hdfs上的文件目录结构映射成表。主要关注的是对数据的统计等方面。

适合的场景:

hbase:适合大型数据存储,其作用可以类比于传统数据库的作用,主要关注的数据的存取。

hive:适合大数据的管理,统计,处理,其作用类比于传统的数据仓库,主要关注的数据的处理。

总结:应对大数据的时候,如果你偏重于数据存储查询hbase无疑是更加适合,而你关注的是对大数据的处理结果查询,比如你查询的时候有类似于count,sum等函数 *** 作 hive就能满足你的需求,一般有些项目都输在hive里面进行数据处理,然后将结果导入mysql等数据库或者hbase中进行查询,至于mysql与hbase的选择 比较倾向于你的处理之后的数据量

Apache Hive 和 Apache HBase 都是大数据中不可思议的工具。虽然它们的功能存在一些重叠,但 Apache Hive 和 Apache HBase 都具有独特的品质,使它们更适合特定任务。一些主要区别包括:

虽然这两个工具都是Hadoop的衍生产品,但它们不为用户提供相同的功能。然而,尽管存在差异,Apache Hive 和 Apache HBase 都是处理大数据时优先考虑的两块工具和解决方案。

每个工具都有自己的优缺点。因此,Hive 和 HBase各自都存在一些限制。

首先,虽然Hive也具有非常基本的 ACID 功能,但它们没有像 MYSQL 那样成熟完备的产品架构,速度无法满足日常OLTP型业务。

Hive 查询通常也具有高延迟。由于它在 Hadoop 上运行批处理,因此获取查询结果可能需要几分钟甚至1小时。此外,更新数据可能既复杂又耗时。

Hive 不是擅长用于查询数据集(尤其是大数据集中)当中的部分数据,大多数用户倾向于依赖传统的 RDBMS (关系型数据)来处理这些数据集。

HBase 查询采用自定义语言,需要经过培训才能学习。HBase 并不完全符合 ACID,尽管它确实支持某些属性。

HBase 可以通过协同处理来处理小数据,但它仍然不如 RDBMS(关系型数据库) 有用。

1、Hive 应该用于对一段时间内收集的数据进行分析查询——例如,计算趋势或网站日志。

2、HDFS 的 SQL 查询引擎 - 您可以利用 Hive的HQL来查询处理 Hadoop 数据集,然后将它们连接到相应的BI工具,进行相关报表展示。

1、HBase 非常适合实时查询大数据(例如 Facebook 曾经将其用于消息传递)。Hive 不能用于实时查询,因为速度很慢。

2、HBase 主要用于将非结构化 Hadoop 数据作为一个湖来存储和处理。您也可以将 HBase 用作所有 Hadoop 数据的仓库。

3、大量数据需要长期保存, 且数量会持续增长,而且瞬间写入量很大。

HDFS是GFS的一种实现,他的完整名字是分布式文件系统,类似于FAT32,NTFS,是一种文件格式,是底层的,Hadoop HDFS为HBase提供了高可靠性的底层存储支持。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统。

扩展资料:

Hadoop 中各模块的作用: 

1、Hadoop HDFS为HBase提供了高可靠性的底层存储支持。

2、Hadoop MapReduce为HBase提供了高性能的计算能力。

3、Zookeeper为HBase提供了稳定服务和failover机制。

4、Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变得非常简单。

5、Sqoop则为HBase提供了方便的RDBMS(关系型数据库)数据导入功能,使得传统数据库数据向HBase中迁移变得非常方便。

参考资料来源:百度百科-HBase

HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来启动Jetty,因此可以通过web界面对HBase进行管理和查看当前运行的一些状态,非常轻巧。为什么采用HBase?HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,在HBase中没有表与表之间关联查询。你只需要 告诉你的数据存储到Hbase的那个column families 就可以了,不需要指定它的具体类型:char,varchar,int,tinyint,text等等。但是你需要注意HBase中不包含事务此类的功 能。Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。

以上就是关于hbase的特点,以及和其他nosql数据库的异同全部的内容,包括:hbase的特点,以及和其他nosql数据库的异同、hbase的特点、HBase为什么火它适用于那些业务场景等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9392220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存