Cassandra & Hbase争锋 | NoSQL数据库的另一个王者

2019-09-10 15:24:27 浏览数 (1)

背景

谷歌在2006年的一份研究报告中首次对Bigtable进行了阐述,如果你熟悉Bigtable这个名词,那么:行先是以一种非常独特的方式被索引,随后Bigtable利用行键对数据进行分割,将它们分布到集群中。这句话你应该不陌生。

Cassandra和HBase都在很大程度上借鉴了早期Bigtable的定义。Cassandra起源于Bigtable和亚马逊的Dynamo技术,HBase将自身定位为"开源Bigtable工具"。这两个项目有许多相同的特点,同时又有许多重大区别。

Canssadra简介

ApsaraDB for Cassandra是基于开源Apache Cassandra,融合阿里云数据库DBaaS能力的分布式NoSQL数据库。Cassandra已有10年 的沉淀,基于Amazon DynamoDB的分布式设计和 Google Bigtable 的数据模型。具备诸多优异特性:采用分布式架构、无中心、支持多活、弹性可扩展、高可用、容错、一致性可调、提供类SQL查询语言CQL等。Cassandra为互联网业务而生,已在全球广大互联网公司有成熟应用,是目前最流行的宽表数据库。 https://www.aliyun.com/product/cds

我们先看看阿里云官网怎么说:

上面的字太多了,总结一下:

  • 分布式NoSQL数据库,基于Amazon DynamoDB的分布式设计和 Google Bigtable 的数据模型
  • 极致在线、高并发、高存储、可调的一致性、灵活
  • 类SQL(CQL)的查询语法
  • Cassandra Spark无缝衔接

Cassandra基础架构

基本架构:

  • Cassandra实例由1到3个DC组成,每个DC由1到500个节点组成。每个节点部署一个cassandra进程。
  • Cassandra没有Master节点或Proxy节点,所有节点物理是对等的(逻辑上系统会选择每DC有2个节点作为seed节点,对系统压力不大,无需单独部署进程)。
  • 客户端与服务端每个节点连接,保障高性能。
  • 不同的数据中心可以设定不同的复本数,既可以作为同城跨区或者异地跨区多活多可用,也可以作备份容灾或离线分析使用。

其中,存储空间:一个节点为80GB~16TB,500个节点,也就是8000TB,大约8PB左右。

Cassandra和Hbase异同

  • Cassandra会在集群中选取几个种子节点,负责集群通信,达到高可用目的;Hbase则是利用主备节点选举HMaster,如果主节点故障,则启用备份节点。
  • Cassandra利用Gossip协议进行节点通信,Hbase使用Zookeeper进行进行协调。
  • Cassandra允许用户创建二级索引,Hbase缺乏二级索引支持,但是有开源解决方案。
  • Hbase有"协处理器"(coprocessors)这一概念,允许在HBase进程中执行用户自定义代码。Cassandra目前还没有支持。
  • Cassandra集群配置更简单

使用场景

Hbase和Cassandra各种自己的特点,并没有所谓的谁更强。

如果你的场景是:

  • 消息、feed流、订单查询等
  • 写密集、统计和分析型场景
  • 会频繁增加集群数据节点

那么不妨考虑一下Cassandra。

0 人点赞