与HBase对比,Cassandra的优势特性是什么?
在1月9日Cassandra中文社区开年活动开始之前的闲聊时间,活动的四位嘉宾就“HBase和Cassandra的对比”这一话题展开了讨论。
总的来说,HBase和Cassandra各有其优势特性以及比较适合的应用场景。不过相比HBase来说,Cassandra的持续在线、稳定性高、易于上手等优势让嘉宾们印象深刻,纷纷给出好评。
刘腾
华为消费者云服务部cassandra数据库运维负责人,2011年加入华为,先后负责过分布式存储,分布式缓存和分布式消息队列的运维工作,2014年开始接触cassandra,2018年开始全面负责cassandra的运维工作。
“华为有在大规模使用Cassandra,也使用了HBase。Cassandra主要用在OLTP场景,HBase主要用在OLAP场景。
相比HBase,Cassandra的优势很多,比如我认为Cassandra对运维的友好程度整体比HBase要好,可用性也要高。
我也希望Cassandra未来可以把HBase的部分优点吸收过来,比如引入RocksDB、支持对接多种底层存储类型、支持计算和存储分离的架构(可对接HDFS等分布式存储)。“
王锋
奇虎360集团技术总监,存储与大数据架构平台负责人。国内较早从事Cassandra相关技术研究和实践的开发者。360云盘则是国内早期Cassandra落地较为成功的案例,峰值规模1.4万物理节点。
“360从2011年就开始用HBase和Cassandra这两套系统了。一方面,这两种数据库的使用场景不太一样。HBase更多的是用在网页库、离线分析,而Cassandra更多的是满足在线(always online)需求。
在选择这两种数据库时主要考虑的点是故障恢复时间。HBase本身故障恢复的时间,它在Region Server宕机之后需要重新分配,这个分配的时间是秒级到分钟级,是比较长的。如果数据规模比较大,很难用HBase满足100%在线这种业务需求。很多业务在我们这里很难容忍较大的访问抖动,或者较大的MTTR的时长,对于这类需求我们更倾向于使用Cassandra。
而对于数据规模大且吞吐量大的场景下的离线分析,我们更多地倾向于使用HBase,因为HBase是基于HDFS之上,很多扫描(scan)类型的访问用HDFS的效率就比较高一些。
另一个方面,是当我们做一些to B的项目时会发现Cassandra很适合中小规模的场景。因为它没有中心节点,整体架构比较轻量化,这样在运维管控方面就会有比较大的优势。
再加上Cassandra持续可用的特点和按需扩容的能力,以及Cassandra 3.0版本中的同城多活的特性,Cassandra访问可靠性上会比较有优势。
整体来说,从数据模型和功能方面来看,这两种数据库差不太多,但是在不同的应用场景可能会倾向使用不同的数据库。“
刘军民
阿里云数据库产品经理。目前在阿里云负责云Cassandra数据库的产品规划相关工作。曾在19年与多位小伙伴共同发起Cassandra中文社区,期望更多的伙伴加入到社区建设,期待Cassandra在中国区可以生机勃勃,大放异彩。
“我们在客户访谈的过程中经常碰到这样的疑惑:HBase和Cassandra到底怎么选?
因为我是做数据库产品的,我个人觉得Cassandra有几个好处:首先它起配是非常灵活的,另外就是它的稳定性。我们访谈的很多用户都反映过,在使用Cassandra的过程中数据库很稳定而且维护也很简单。因为Cassandra的组件较少,不像HBase有一堆组件需要维护。
所以我个人觉得,HBase更像是Hadoop体系下结合比较紧密的一个大数据存储工具,而Cassandra更像是一个数据库,一个非常容易运维的宽表数据库。
另外Cassandra的开发也很简便,因为Cassandra的CQL对于MySQL用户来说没有太高的学习门槛。很多用户反馈,以前从来没有用过Cassandra,但是花了几天时间学习之后就可以上手了,也就是说学习门槛是很低的。
除此之外,还有一点是稳定、易维护,尤其是在一些小规模集群上。我个人觉得Cassandra除了已有的使用场景外,在一些面向未来的场景,比如5G、AIoT、智能制造这些新兴的场景,对一些公司(尤其是初创公司)是更友好的。这也是为什么越来越多的开发者愿意选用Cassandra的原因。“
邓为
现任DataStax领航架构师总监。深耕分布式数据库系统十余年,曾经参与Amazon RedShift分布式云数据仓库前身的核心技术研发,七年前加入DataStax,主要负责为财富500强大客户和战略合作伙伴提供咨询服务。对SQL和NoSQL数据库,以及相关的大数据产品都有比较丰富的实战经验。
“我来分享一下我在国外看到的情况。我知道HBase在中国是比Cassandra更流行,比如从百度搜索指数这样的数据中都能看出来。但是在国外,情况恰恰完全相反。
在权威数据库排行榜DB Engines中,Cassandra的排名比HBase靠前很多。一般Cassandra都在前十以内,HBase一般在二十名开外,和Cassandra一直有十多名的差距。
根据我和客户的沟通,国外的客户现在越来越少人会把HBase和Cassandra比较。我认为,其中的一个原因是,HBase的流行其实是跟着Hadoop起来的,在Google Search上也可以看到HBase的流行程度和Hadoop是正相关的。
不过自2015年以来,Hadoop以及MapReduce这些框架逐渐被Spark这种新兴起的大数据处理框架替代,所以搭了Hadoop的快车的HBase在国外就逐渐式微了。
另外HBase的设计确实很容易由于某个模块出现问题或是由于它对Zookeeper的依赖,而造成单点故障的出现,导致数据库不能百分之百在线。
如果你完全没有基础,重头开始上手学习一个宽表数据库的话,Cassandra是比HBase要容易上手得多,Cassandra基本上可以说是能拿来就用的数据库。
如果你是从别的数据库转过来,Cassandra的开发者界面是非常友好的,CQL这种查询语言和大家熟悉的SQL非常相像。但如果你要使用HBase原生的界面,你需要写代码才能使用这个数据库,这会导致HBase上手比较困难。“