【Cassandra和HBase的区别】下表指定了Cassandra和HBase之间的主要区别:
HBase的 | 卡桑德拉 |
---|---|
HBase is based on 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可以轻松地水平扩展, 同时仍支持Rowkey范围扫描。 | 如果将数据存储在Cassandra中的列中以支持范围扫描, 则Cassandra中行大小的实际限制是10兆字节。 |
HBase支持原子比较和设置。 HBase支持连续的事务。 | Cassandra不支持原子比较和设置。 |
HBase不支持针对单个行的读取负载平衡。单行一次仅由一个区域服务器提供服务。 | Cassandra将支持对单个行的读取负载平衡。 |
布隆过滤器可以在HBase中用作索引的另一种形式。 | Cassandra使用布隆过滤器进行键查找。 |
HBase中的协处理器功能支持触发器。 | Cassandra不支持类似协处理器的功能。 |
推荐阅读
- Cassandra创建数据
- Cassandra入门介绍
- Cassandra截断表
- Cassandra设置和安装
- Cassandra的历史
- Cassandra的特点
- Cassandra删除表
- Cassandra删除键空间
- Cassandra删除索引