Cassandra 与 HBase

2024 年 8 月 29 日 | 阅读 2 分钟

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


HBaseCassandra
HBase 基于 Bigtable (Google)Cassandra 基于 DynamoDB (Amazon)。它最初由前 Amazon 工程师在 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 主节点和数据节点,Zookeeper 是集群的并且本质上具有容错能力。 Name Node 需要集群才能实现容错。Cassandra 使用单个节点类型。 所有节点都是平等的并执行所有功能。 任何节点都可以充当协调器,确保没有单点故障。 当然,添加 storm 或 Hadoop 会增加基础设施的复杂性。
HBase 非常适合执行基于范围的扫描。
Cassandra 不支持基于范围的行扫描,这在某些用例中可能会受到限制。
HBase 提供了通过广域网异步复制 HBase 集群的功能。Cassandra 的随机分区提供了跨广域网的单行行复制。
HBase 仅支持有序分区。Cassandra 官方支持有序分区,但由于它创建的“热点”以及这些热点引起的操作困难,没有 Cassandra 的生产用户使用有序分区。
由于有序分区,HBase 将很容易横向扩展,同时仍支持 Rowkey 范围扫描。如果数据存储在 Cassandra 的列中以支持范围扫描,则 Cassandra 中行大小的实际限制是几十兆字节。
HBase 支持原子比较和设置。 HBase 支持行内的事务。Cassandra 不支持原子比较和设置。
HBase 不支持针对单行的读取负载均衡。 单行一次只由一个区域服务器提供服务。Cassandra 将支持针对单行的读取负载均衡。
Bloom 过滤器可以在 HBase 中用作另一种索引形式。Cassandra 使用布隆过滤器进行键查找。
触发器由 HBase 中的协处理器功能支持。Cassandra 不支持类似协处理器的功能。

下一主题RDBMS vs Cassandra