Cassandra与HBase

 

下表指定了Cassandra与HBase之间的主要区别:

HBase Cassandra
HBase基于Bigtable(Google) Cassandra基于DynamoDB(Amazon)。它最初是由前亚马逊工程师在Facebook上开发的。这就是Cassandra支持多数据中心的原因之一。
HBase使用Hadoop基础结构(Zookeeper,NameNode,HDFS)。部署Hadoop的组织必须具有Hadoop和HBase的知识 Cassandra与Hadoop分开启动和发展,其基础架构和操作知识要求与Hadoop不同。但是,为了进行分析,许多Cassandra部署都使用Cassandra + Storm(使用zookeeper)和/或Cassandra + Hadoop。
HBase-Hadoop基础结构具有几个"活动部分",包括Zookeeper,名称节点,HBase主节点和数据节点,Zookeeper是集群的并且自然地具有容错能力。需要对名称节点进行群集以容错。 Cassandra使用单个节点类型。所有节点均相等,并执行所有功能。任何节点都可以充当协调器,从而确保没有Spof。当然,添加风暴或Hadoop会增加基础架构的复杂性。
HBase非常适合进行基于范围的扫描。 Cassandra不支持基于范围的行扫描,这在某些用例中可能会受到限制。
HBase提供了跨广域网的HBase集群的异步复制。 Cassandra随机分区提供了跨WAN的单行的行复制。
HBase仅支持有序分区。 Cassandra正式支持有序分区,但是Cassandra的生产用户都不使用有序分区,这是因为它会产生"热点"以及此类热点导致的操作困难。
由于有序分区,HBase可以轻松地水平扩展,同时仍支持行键范围扫描。 如果数据存储在Cassandra中的列中以支持范围扫描,那么Cassandra中行大小的实际限制是10兆字节。
HBase支持原子比较和设置。 HBase支持连续的事务。 Cassandra不支持原子比较和设置。
HBase不支持针对单个行的读取负载平衡。单行一次仅由一个区域服务器提供服务。 Cassandra将支持对单个行的读取负载平衡。
Bloom filters可以在HBase中用作索引的另一种形式。 Cassandra使用bloom筛选器进行键查找。
HBase中的协处理器功能支持触发器。 Cassandra不支持类似协处理器的功能。

Cassandra与RDBMS: 下表指定了Cassandra和RDBMS之间的主要区别:CassandraRDBMSCassandra用于处理非结构化数据。RDBMS用于处理结构化数据。Cassandra具有灵活的架构。RDBM ...