Cassandra vs. HBase

Wu Jun 2020-01-05 03:43:49
Categories: > Tags:

参考:

一、对比总结

1)HBase

HBase 设计目的是处理数据湖、数据仓库中的冷数据

2)Cassandra

Cassandra 设计目的是支持“always-on”的在线Web和移动应用程序

3)特性对比

特性 HBase Cassandra
CAP CA,一致性&可用性 AP,可用性&分区容错性
协处理器
再平衡 在群集中提供自动再平衡 不支持集群整体再平衡
架构模型 主从架构模型 双活节点模型
数据库基础 Google BigTable Google Bigtable&Amazon DynamoDB
单点故障 存在,当主节点不可用时 没有,所有节点相等
灾难恢复 支持,如果配置了两个主节点 支持,所有节点相等
HDFS兼容性 兼容 不兼容
一致性 强一致性 弱一致性

二、数据模型

1)HBase

在 table 中,数据按一列行键字典顺序分区。行键的设计至关重要,用以确保高效的数据查找。

2)Cassandra

在 cluster 中,数据按多列主键的hash值分区,并被分配到 token 比其hash值大的结点,再根据复制因子备份到相应结点。

3)数据模型对比

术语相同,含义不同。

//todo
另外,Cassandra 允许一个主键包含多列,而 HBase 只有单列行键,并让开发者设计行键。同时,Cassandra 的主键包括分区键和聚类列,分区键里仍能包含多列。

三、架构

1)单点失败
2)可用性
3)一致性
4)节间通信
5)事务

支持轻量级事务

6)查询语言

HBase shell 和 Cassandra shell都基于JRuby Shell。

7)功能

四、性能

1)写

Cassandra 更擅长写。

Cassandra 基于一致性hash,HBase 依赖Zookeeper

2)读

HBase 更擅长读。