Cassandra与HBase比较(区别)

Cassandra与HBase比较(区别)

下表说明了Cassandra和HBase之间的主要区别:

HBase Cassandra
HBase是基于Bigtable(Google) Cassandra基于DynamoDB(亚马逊)。 它最初是由前亚马逊工程师在Facebook开发的。 这是Cassandra支持多数据中心的原因之一。
HBase使用Hadoop基础架构(Zookeeper,NameNode,HDFS)。 部署Hadoop的组织必须具备Hadoop和HBase的知识。 Cassandra与Hadoop分开开发,其基础工具和操作知识的要求与Hadoop不同。 然而,对于分析,许多Cassandra部署使用Cassandra + Storm(使用zookeeper)和/或Cassandra + Hadoop。
HBase-Hadoop基础工具有几个由Zookeeper,Name Node,HBase master和数据节点组成的“移动部件”,Zookeeper是集群的,自然是容错的。名称节点需要集群为容错。 Cassandra使用单个节点类型。 所有节点相等并执行所有功能。 任何节点都可以作为协调器,确保没有Spof。 添加Storm或Hadoop当然会增加基础设施的复杂性。
HBase非常适合进行基于范围的扫描。 Cassandra不支持基于范围的行扫描,这可能在某些用例中是有限制的。
HBase提供跨越一个HBase集群的异步复制。 Cassandra随机分区提供了跨越单行的行复制。
HBase仅支持有序分区。 Cassandra正式支持有序分区,但Cassandra没有生产用户使用有序分配,由于“热点”创建并操作困难等热点引起。
由于有序分区,HBase可以轻松地水平放置,同时还支持Rowkey范围扫描。 如果数据存储在Cassandra的列中以支持范围扫描,Cassandra中行大小的实际限制是10兆字节。
HBase支持原子比较和设置,HBase支持一行内的事务。 Cassandra不支持原子比较和设置。
HBase不支持单行读取负载平衡,一行只有一个区域服务器一次提供。 Cassandra将支持单行读取负载平衡。
Bloom过滤器可用于HBase作为另一种形式的索引。 Cassandra使用bloom过滤器进行键查找。
触发器由HBase中的协处理器功能支持。 Cassandra不支持协处理器功能。