下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

HBase大势已成

作者:课课家教育     来源: http://www.kokojia.com点击数:1020发布时间: 2017-08-13 10:00:59

标签: 数据库NoSQLHBase

  对比传统RDBMS领域,NoSQL界的厮杀显然更加激烈。而在这场没有硝烟的战场中,mongodb和Cassandra无疑是风头最劲的两个产品。但是如果你着眼HBase,各大热门技术(比如Spark、Hadoop)及知名厂商(比如微软、SpliceMachine)的支持无疑描绘出一个更美好的未来,下面我们一起看GigaomAndrew带来的分析。

mongodb和Cassandra

  在Nosql数据库领域,统治产品无疑当属MongDB和DataStaxEnterprise(一个领先的ApacheCassandra发行版)。然而本周的两条新闻头条却开始关注一个尽管很顽强,但知名度低的选手——ApacheHBase,这个几乎包含在任何主流Hadoop发行版的NoSQL数据库。

  Mongo的挑战

  聚焦之前,有两个事件值得关注——7岁的MongoDB任命了第三任CEO,以及主打HBase的初创公司SpliceMachine新一轮融资超过300万美元。对比MongoDB和HBase,无论是独自还是联合发展,后者都没有任何超越前者的迹象。最终,即将离职的MongoDBCEOMaxSchireson将其离职原因归结于需要频繁奔波于公司在PaloAlto和NewYork的两个总部,以及其他的一些工作需求。

  MongoDB似乎诠释了快速发展的苦恼,不仅仅表现在经营管理层,也表现在技术发展层面上——从许多开发者和圈内朋友那得知,MongoDB在大规模下表现非常差,不管是集群大小还是数据摄入体积。

  分歧中的发展

  但不得不说,HBase的势头正在上扬,并且不存在MongoDB发展中所遇见的问题。虽然HBase没有像MongoDB及Cassandra背后那些龙头企业撑腰,但其发展已经很好了:

  HBase介绍

  HBase是Hadoop生态系统中一个重要的NOSQL存储,它一些设计思想来自于Google的Bigtable,因此在Key-Value存储结构上与同出一门的Cassandra有相似之处。

  HBase出现的背景

  随着数据规模越来越大,大量业务场景开始考虑数据存储水平扩展,使得存储服务可以增加/删除,而目前的关系型数据库更专注于一台机器。

  海量数据量存储成为瓶颈,单台机器无法负载大量数据。

  单台机器IO读写请求成为海量数据存储时候高并发,大规模请求的瓶颈。

  当数据进行水平扩展时候,如何解决数据IO高一致性问题。

  结合Map/Reduce计算框架进行海量数据的离线分析。

  应用场景

  HBase与同时代的cassandra,mongoDB相比,其是一个重量级的nosql存储系统。根据一些信息来源,目前实际产线中cassandra最大部署规模在400台左右,Mongodb则实际应用少见。其它例如memcache,redis,实际上很难说它是个nosql存储,只能说是缓存存储,存储数据量有限。

  cassandra出现这样的一个重要问题在于随着集群规模越来越大,由于缺乏master节点导致缓存命中率可能非常差。

  而HBase在facebook部署有上千台规模。

  HBase一个最重要的特性在于,其在满足海量存储规模的前提下,数据读写IO变化幅度并不是特别明显,延迟性变化幅度相对较小。

  与cassandra不同的是,cassandra满足CAP原则的高可用性,分区可容忍性原则,而HBase则满足了分区可容忍性,高一致性原则,对于高可用性,HBase由于HMaster单点失败问题而无法满足。

  另外一个重要特性在于,HBase与hadoopHDFS,Map/Reduce的天然结合,这是其他NOSQL存储无法比拟的优势。

  例如在hadoop0.20.2map/reducenewAPI中,对于海量数据全局排序,由于缺乏TotalOrderPartitioner对newAPI支持,甚至直接都可以使用HBase库中的TotalOrderPartitioner包进行处理。

  HBase与hadoop平台能够结合的一个最大优势在于,HBase分布式存储后数据分块的replication由hadoopHDFS自动分发完成。HBase是一个读写延迟性相对较低的nosql存储,与hadoopHDFS存储相比,HBASE更专注于单条数据交互读写,低延迟性;而HADOOPHDFS则更专注于批量数据的读写,更专注于高吞吐量,导致其延迟性较高。

  因此对于在线业务应用场景产生的数据,需要进行离线分析时,直接对HADOOPHDFS操作,将使得前期工作更为复杂,需要考虑数据提前合并,避免HADOOP小文件存储对NameNodeeditlog产生的影响,同时还要考虑文件追加写入,这恰恰是HadoopHDFS不具有的功能。

  因此HBase能够在Hadoop生态系统中出现,是有一定原因,它弥补了hadoop上述的缺陷,使得hadoop生态系统服务更加全面。

  HBase部署的简单描述

  HBase部署相对是一个较大的动作,其依赖于zookeepercluster,hadoopHDFS。

 HBase部署的简单描述    HBase部署相对是一个较大的动作,其依赖于zookeepercluster,hadoopHDFS。

  其中Zookeeper作用在于:

  1,hbaseregionserver向zookeeper注册,提供hbaseregionserver状态信息(是否在线)

  2,hmaster启动时候会将hbase系统表-ROOT-加载到zookeepercluster,通过zookeepercluster可以获取当前系统表.META.的存储所对应的regionserver信息。

  HMaster主要作用在于,通过HMaster维护系统表-ROOT-,.META.,记录regionserver所对应region变化信息。此外还负责监控处理当前hbasecluster中regionserver状态变化信息。

  hbaseregionserver则用于多个/单个维护region。

  region则对应为hbase数据表的表分区数据维护。

  HBase如今作为Hadoop的一部分存在,使用HDFS作为表格表示它可以从其他Hadoop负载中导入和导出数据,也可以单独工作。

  ApacheHive可以用于HBase数据查询,为NoSQL数据库提供SQL接口。

  MapR一直致力于提升HBase在操作应用程序方面的应用,为此该公司开发了自定义的HDFS读写版本,其发布的基于C++、兼容HBase数据库的M7Hadoop专为可操作性工作负载设计。

  Continuuity的产品Reactor为Hadoop与HBase整合使用设计。

  ApacheKnox、HortonworksXASecure和ZettasetOrchestrator都为HBase数据提供了安全服务。

  微软现在提供基于云的集群服务,特别为基于Hadoop的AzureHDInsight云服务预览版本提供了HBase配置。这一基于HBase的实施应用于AzureBlob存储中。

  上面提到过,SpliceMachine已经成功为HBase发行版融资,有趣的是它还是一个关系型数据库。这在一定程度上说明了,基于HBase多功能性的横向扩展数据库基础设施并不限制必须使用NoSQL应用程序。

  展望HBase未来

  从SpliceMachine和微软的产品来看,HBase是一个兼容了其他数据技术的NoSQL数据库。同时,人们对“DataLake”架构日益增长的兴趣也增加了HBase成功的几率。对于HBase的持续发展,让我们拭目以待。

  小编结语:

  更多内容尽在课课家教育!

赞(21)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程