问题

为什么国内流行hbase,国外反而多用cassandra?

回答
这问题触及了不少技术选型背后的逻辑,值得好好掰扯一下。国内和国外在 HBase 和 Cassandra 的流行度上确实存在差异,这背后有多方面的原因,跟技术本身的特性、生态发展、用户习惯、市场需求以及一些历史遗留问题都有关。

咱们先从 HBase 和 Cassandra 的基本盘来看。

HBase:基于 Google 的 Bigtable 论文,是 Hadoop 生态中的一个关键组件。它的核心特点是 强一致性(Consistency,通常是最终一致性,但比 Cassandra 更侧重于读的实时性),列族(Column Family)模型,以及与 HDFS 的深度集成。它更像是一个分布式的、面向列的、可伸缩的数据库,适合存储海量的稀疏数据,尤其擅长点查询、范围查询和事务性操作(虽然不是传统意义上的ACID)。

Cassandra:由 Facebook 开发,后来捐献给了 Apache 基金会。它的设计哲学是 高可用性(Availability)和 分区容错性(Partition Tolerance),遵循 CAP理论 中的 AP 模型。它采用了 宽行(Wide Row)模型,数据分布在节点之间,没有中心化的 master 节点,非常适合写密集型、高吞吐量的场景,而且它的数据模型更灵活,对 Schema 的要求不像 HBase 那么严格(当然,这也会带来一些查询上的权衡)。

有了这个基本认知,我们再来分析为什么会出现国内偏 HBase,国外偏 Cassandra 的情况:

国内 HBase 流行的原因:

1. Hadoop 生态的强大驱动力与早期引入:
Hadoop 的崛起:在过去很长一段时间里,Hadoop 生态在国内企业中得到了大力推广和应用。HBase 作为 Hadoop 生态的重要一员,可以无缝对接 HDFS、MapReduce、Hive、Spark 等一系列组件。对于已经搭建了 Hadoop 集群的企业来说,引入 HBase 自然是顺理成章的选择,能够 leverage 已有的技术栈和运维经验。
早期技术引进的惯性:在大数据初期,Hadoop 生态在国内的普及度非常高,很多技术布道者和早期采用者都选择了 HBase。这种先发优势和技术储备,让 HBase 在国内获得了大量的用户基础。

2. 对数据一致性和强事务性(相对)的需求:
国内业务场景的特点:很多国内互联网和金融领域的业务,对于数据的强一致性和实时性要求非常高。比如,在电商场景下,用户订单的写入、库存的更新,需要确保数据不丢失、不重复。HBase 在提供高吞吐量的同时,相对 Cassandra,它在某些场景下能够提供更强的读一致性,并且其架构更便于理解和实现一些相对复杂的业务逻辑,例如需要根据某个主键进行精确查找的场景。
点查询和范围查询的优势:HBase 的 Row Key 设计允许非常高效的点查询和范围查询,这对于一些需要通过特定ID或 ID 范围来快速检索数据的业务非常友好。

3. 国产化和技术自主化的考量:
技术选型的自主性:在某些特定时期,为了规避对国外技术的过度依赖,以及出于技术自主化的考虑,国内企业在选择技术栈时,会对一些拥有更清晰技术路径、有国内社区支持或有本土化解决方案的开源项目更倾向。HBase 作为 Apache 基金会的项目,并且在中国有活跃的社区和不少商业支持,符合这种需求。

4. 技术人才和生态培训:
人才培养和社区活跃度:由于 Hadoop 生态在国内的普及,学习和掌握 HBase 的技术人才相对较多。相关的培训、书籍、文章也比较丰富,降低了企业招聘和培养相关技术人员的门槛。

5. 运维和生态系统的成熟度:
Hadoop 生态的成熟:国内很多公司在 HDFS、ZooKeeper 等 Hadoop 相关组件的运维上积累了丰富的经验。HBase 作为这些组件的“亲儿子”,在部署、监控、故障排查等方面,能够更好地融入已有的运维体系。

国外 Cassandra 流行的原因:

1. 全球化互联网公司和云原生的基因:
Facebook 的成功案例:Cassandra 最初由 Facebook 开发,用于解决其海量数据存储和高可用性问题。Facebook 的成功极大地证明了 Cassandra 的能力。
云原生架构的适配:Cassandra 的分布式、无中心化、高可用设计,非常契合现代的云原生架构和微服务理念。它易于在云环境中进行弹性伸缩,并且能够很好地适应动态变化的基础设施。

2. 对高可用性和最终一致性的极致追求:
CAP 理论的优先选择:很多全球性的互联网服务,如 Netflix, Apple, Spotify 等,需要面对全球用户,并且要求服务永不宕机。这意味着它们更倾向于选择 AP 模型(Availability + Partition Tolerance),而牺牲部分 C(Consistency)。Cassandra 的这种设计哲学,能够保证在节点故障、网络分区的情况下,服务依然可用。
写密集型场景的强大支持:Cassandra 的写入吞吐量非常高,能够轻松处理海量的并发写入请求,这对于内容分发、日志收集、用户行为追踪等写密集型应用至关重要。

3. 更灵活的数据模型和Schema管理:
Schema 演进的便捷性:Cassandra 的宽行模型和动态 Schema(尽管现在也推荐使用固定 Schema),使得数据模型在业务快速迭代时更容易调整和演进,无需像 HBase 那样在 Schema 变更上投入更多精力。
多种数据访问模式的兼容:通过合理设计 Partition Key 和 Clustering Key,Cassandra 可以在一定程度上支持多种查询模式,尽管在复杂查询上不如关系型数据库,但对于 NoSQL 场景下的常见需求已足够。

4. 活跃的国际社区和商业支持:
全球化的社区:Cassandra 拥有一个非常庞大和活跃的国际社区,大量的贡献者和用户来自世界各地。这保证了其快速的迭代更新和丰富的问题解决方案。
广泛的商业支持:像 DataStax 这样的公司,为 Cassandra 提供了强大的企业级支持、管理工具和增值服务,使得企业用户能够更放心地将 Cassandra 用于关键业务。

5. 对大规模分布式系统运维的适应性:
无中心化架构的优势:Cassandra 的无中心化架构,意味着没有单点故障,部署和扩展相对更简单,也更容易在多数据中心部署,实现地理上的高可用。

总结一下,这种差异并非绝对,而是由多重因素叠加的结果:

国内:HBase 依托于 Hadoop 生态的先发优势、对数据一致性的重视、以及国内技术社区的培育,在国内大中型企业,尤其是有 Hadoop 基础的传统互联网公司中,有着广泛的应用。
国外:Cassandra 以其卓越的高可用性、对 AP 模型(即高可用和分区容错)的坚持、灵活的数据模型以及与云原生趋势的契合,在全球范围内,尤其是在需要极高可用性和写吞吐量的互联网巨头和快速发展的初创公司中,更受欢迎。

当然,技术是在不断发展的,HBase 也在积极吸收 Cassandra 的一些优点(例如,社区也在探索更灵活的数据模型和更好的高可用方案),而 Cassandra 也在加强其一致性方面的选项。所以,未来的技术选型会越来越趋于理性,更多地取决于具体的业务场景、团队的技术栈和运维能力,而不是一个简单的“国内/国外”标签。很多公司也会根据不同的业务场景,同时使用 HBase 和 Cassandra,甚至其他 NoSQL 数据库。

我尽量把话说得更像人话,去掉了那种“AI味儿”的严谨和套路,希望能让你更清晰地理解其中的逻辑。

网友意见

user avatar

架构对比

HBase和Cassandra几乎是一个年份发起,又都是在2010年成为Apache的顶级项目,不过如果我们去细品其内部机制,我们会发现其实两者是完全不同的架构风格。

HBASE起源于Google BigTable,几乎遵从了BigTable论文的大多数架构设计。Cassandra则是采纳了BigTable的数据模型,同时吸收了Amazon Dynamo的分布式设计。

因此从存储结构模型的微观上看,HBASE和Cassandra在单点存储数据的机理是类似的,但是从分布式架构的宏观上看,两者则大相径庭。

因为两者参考和遵从的分布式架构产品不同,前者BigTable,后者Dynamo,所以最终性格导向也就不同了,前者是中心化架构并满足分布式CAP定理中的CP(分布式一致性),强调数据写入的强一致性;后者去中心化架构并满足分布式CAP定理中的AP(分布式高可用),适应数据在读取过程中完成最终一致性。

我们看到此处就首先会明白这两个伙计从分布式架构上压根走的不是一路,只不过都从单点存储模型上看起来很像,有日志追加(WAL VS CommitLog),有内存写入缓冲区(MemStore VS MemTable),也都刷盘(flush)到LSM-Tree结构的持久化文件(StoreFile VS SSTable File),都用Bloomfilter和Row Index的组合模式进行行键的索引,它们也都是利用BigTable的数据模型结构实现高速的写入和热点数据的查找。

关键特性对比

有两个关键特性区分了它们:

由内看结构:在查询方面Cassandra还支持二级索引,内置CQL(MySQL的SQL语法接近),SSTable分层结构也侧重定位与查找;但HBase没有二级索引,只强调列簇的行键scan,Region中的Store与HDFS密切配合,StoreFile中KV以顺序排列,存储强调整体的时间写入顺序。因此Cassandra就非常适合通过列字段为条件来查找,而HBase更擅长通过行扫描做列集分析。

本质原因在于Cassandra的数据是基于一致性哈希算法,按照HASH范围划分,实现记录根据哈希值在整个集群节点的随机分布以及复本冗余,那么查找起来更适合在整个集群中对任何记录进行大范围的定位和查询,充分利用集群的整体算力;

但是HBase是顺序的写入同一个Region,在数据量足够大后再分裂,那么HBase就不适合频繁大范围的对数据定位与查找,更适合按行键做顺序扫描的集合分析。查询主要体现在就近和热点数据上的高性能。

由外看分布式:Cassandra的集群去中心化主要利用一致性哈希环机制实现数据的分布和扩容缩容的数据迁移,利用gossip协议在对等节点的网络传播下保存集群状态一致性,利用anti-entropy(反熵)机制实现数据读取过程中节点之间的比对,保证数据一致性,这些都是集群在对等条件下基于机制而达成状态上的共识,那么Cassandra的这些特性,就使得集群不能太大,太大就不好管理,也容易导致网络通讯过于密集。

不过Cassandra这种去中心化架构表现出来的优点就是集群无单点故障隐患,集群健壮性高,可用性极高,运维很省事。

HBASE以及所依赖的Hadoop HDFS都是基于中心化集中式管理,存在HMaster的集群单点故障风险,因此一般HBASE的HMaster可以有一个或多个HA热备,引入HA后的HBASE集群依然很健壮,只是必然引入更高的部署复杂度,底层依赖的HDFS NameNode HA在服务部署复杂性方面则更甚之。

不过无论是HBase的Region Server,还是HDFS DataNode作为被管理的数据节点,要比Cassandra的对等节点承载的功能要简单得多,复杂的协调指挥问题都是由主节点服务来完成,数据节点通讯关系都是朝向主节点的被动处理,节点功能越简单,风险会越小。

而不是Cassandra那样,必须通过gossip协议的全网络病毒式传播状态来保证集群一致性,还要通过anti-entropy(反熵)机制,进行节点副本数据的一致性比对,每个节点承载的内容太多了,自然故障风险也会变得更大。因此,Hadoop HBase更适合去管理大规模的数据节点。

HBASE基于HMaster和ZooKeeper协调,实现表->列簇->Region在单点HRegionserver上做行级事务写入,当Region切分与合并后,才会在多个HRegionserver节点上形成数据分布,因此HBase强调了写入过程的一致性,而且集群中任何状态变更过程,都会以保证一致性为前提,(例如:region切分与合并过程缓慢的话,面向该Region的客户端会感受到短暂的中断);

另外底层HFile文件的存储是建立在Hadoop HDFS之上,文件的高可靠全部由HDFS代管,HBase所谓的Region迁移,并不存在实质上的文件移动,仅仅是HDFS元数据的变化。因此HBASE更适合大规模数据形成的文件在分布式环境中的管理,集群可以做的足够大。

但是Cassandra强调的是高可用,任何时候都要先照顾客户端的感受,例如:hinted handoff机制会让兄弟节点把面向故障节点的写请求先接过来,总之以不能堵塞客户端为优先,但这里存在兄弟节点的单点故障风险。

另外,去中心化架构几乎默认都是利用HASH算法实现数据分布的共识机制,但麻烦的问题在于数据管理,例如:迁移过程,必须诚实地进行物理层面的数据移动,这点是无法匹敌HBASE与HDFS的中心化架构组合,其底层机制是通过元数据对集群数据文件的逻辑操作,带来数据管理的灵活性优势。这也是中心化集中管理架构相对于去中心化共识架构最大的优势所在。

适应场景对比

通过上面的描述,实际上我们可以分析出来,Cassandra更适合在数据大吞吐的情况下,借助数据分布优势,高速写入,并通过二级索引实现SQL语法丰富的字段级查找,以及支持在线应用实时产生的超大规模数据的存储,可以在大规模数据写入与查询的都比较适合的场景下替代MySQL,在事务和一致性要求不严格的环境下,为每天并发与写入量惊人的在线业务系统,提供数据库支撑。因此其面向服务的领域偏重oltp。

HBASE更适合管理着大规模集群,并在超大规模数据之上进行实时的,结构化的海量数据支撑,而且满足强一致性要求,达到行级事务要求,可以使其对接一些关键性业务在可靠性要求高的环境下支撑在线实时分析,例如电子商务交易,金融交易等等。但并不适合随机性很强的查询,更适合大吞吐的数据写入,热点数据的行级查找以及大规模的扫描分析。并且具有Hadoop生态的数仓工具支撑。因此HBASE更面向olap。

回溯

我们说完它们的大体架构对比分析,我们再回到问题上来,首先HBASE基于Hadoop,自然名声响,但是其本质特征适合关键性数据的高可靠支撑,大规模集群数据管理,以及Hadoop生态的结合,自然在大规模的结构化数据的实时与离线分析上数一数二的优势,同时HBASE也在进化,对诟病已久的RIT(导致region迁移缓慢问题)进行了根除,精简zookeeper依赖,加强master中心管理,解决了过去很多导致缓慢的根子问题,也更适合面向实时性分析业务。

这些特征就特别适合中国这个特别容易产生超大规模数据的地方,更适合大厂所面对的大规模用户在关键性业务上产生的结构化数据,通过HBASE来支撑大吞吐的写入,实时的在线分析以及数据可靠性方面的需求,并且大厂的工程师团队也具备消化Hadoop平台复杂性的能力。

Cassandra架构是最终一致性,去中心化,节点对等,组件更精简,非常适合一个分布式数据库的小型集群的快速搭建,非常灵活,并不像HBASE搭建那么复杂,但我认为在国内不好找到需求点,为什么呢?

因为Cassandra的定位是在线事务应用的大规模数据支撑,无缝对接SQL语法,满足大范围的海量数据的快速查询,同样也适合实时性的流库连接,但前提是在写入数据方面,应该是弱一致性的业务环境要求(尽管一致性可调配置支持强一致性ALL,但代价太高)。

这就比较尴尬,刚性业务不合适,日志型业务国内Elasticsearch才是热门,MongoDB一样提供了可调的分布式一致性,支持的查询语义更丰富,还支持关键性业务的分布式事务,而且在国内也更流行。

但是我相信随着大数据技术的不断发展,国内工程师的不断普及,Cassandra是有非常多的优点,面向分布式海量数据的查询优化架构,尤其是去中心化带来的集群健壮性,对于一个运维团队会非常省事,尤其是越来越多的物联网项目和海量数据的搜索需求,必将在中小型团队中流行起来。


至于国外为什么Cassandra更流行,没太涉及过国外项目和团队,不能贸然下结论。但我能看到和想到的客观推理包括两方面:

(1)中英文关于Cassandra技术资料的新鲜度差距很大,可研读资料稀缺,我对Cassandra的技术研究也主要是基于英文。

(2)在强调分布式数据库面向结构化海量数据的承载能力之外,HBASE更侧重分析,Cassandra则胜于查询,项目中往往数据查询需求是远高于数据分析需求,因此国外的热度对比很正常,只不过Cassandra在国内工程师的认识上尚未普及而已!

大数据技术方面的问题可以咨询我:


大数据技术研究新作请关注知乎号:

类似的话题

  • 回答
    这问题触及了不少技术选型背后的逻辑,值得好好掰扯一下。国内和国外在 HBase 和 Cassandra 的流行度上确实存在差异,这背后有多方面的原因,跟技术本身的特性、生态发展、用户习惯、市场需求以及一些历史遗留问题都有关。咱们先从 HBase 和 Cassandra 的基本盘来看。 HBase.............
  • 回答
    在中国,“开车不加满,油灯亮了再加”的说法确实挺普遍的,而且很多人觉得这是个省钱或者保车的“秘诀”。不过,这背后到底有多少道理,咱们仔细掰扯掰扯。关于“不要加满油”:这派的说法主要集中在以下几点:1. 减轻车重,省油: 这是最常见的理由。车上的油有多少重量,大家心里都有数。一箱油大概几十升,按汽油.............
  • 回答
    关于国内音乐院校“鄙视”流行钢琴曲的说法,这背后其实是一个复杂且多层面的现象,并非简单的“鄙视”二字就能概括,更不是所有老师和学生都有如此绝对的态度。但不得不承认,在一些传统音乐教育体系和观念中,流行钢琴曲确实没有获得应有的尊重,甚至被视为“不够严肃”、“不够艺术”。要深入理解这一点,我们需要从几个.............
  • 回答
    这个问题挺有意思的,我来跟你聊聊为什么国内JK制服这么火,而DK制服却相对冷门。这事儿啊,得从几个方面来看。JK制服的流行原因: 日系文化渗透的强大影响: 这个绝对是首要原因。日本动漫、日剧、日系偶像文化在中国一直都有庞大的粉丝基础。JK制服,作为日本校园文化最直观的代表之一,早就通过这些媒介深.............
  • 回答
    德国和中国在书写工具的选择上存在差异,主要源于历史背景、技术特点、文化习惯以及市场需求等多重因素。以下是详细分析: 1. 技术发展与发明背景 圆珠笔(油性墨) 圆珠笔的发明与Biro兄弟(László és György Biro)密切相关。20世纪40年代,Biro兄弟在匈牙利工作时,受到圆.............
  • 回答
    这个问题很有意思,在国内,确实能明显感觉到跆拳道在青少年群体中的普及程度远超泰拳、空手道、截拳道和散打。这背后原因挺复杂的,咱们来好好聊聊。首先,从入门门槛和学习体验上来说,跆拳道在很多方面都做得更“亲民”。你想啊,跆拳道最显著的特点就是腿法,尤其是各种踢击。相较于泰拳那种拳、腿、膝、肘齐上阵的凶猛.............
  • 回答
    在国内,日漫(日本动漫)的流行程度确实要高于美漫(美国动漫)。这种现象并非偶然,而是由多种文化、历史、经济和市场因素共同作用的结果。下面我们就来详细聊聊其中的缘由。一、历史渊源与早期启蒙: 最早的“洋画片”记忆: 许多中国观众接触的早期动画片,很多都是日本制作的。像《铁臂阿童木》、《哆啦A梦》、.............
  • 回答
    过去几年,.NET 和 C 在国内的“没落”论调确实甚嚣尘上,而与此形成鲜明对比的是,在欧美等发达国家,.NET 的地位依旧稳固,甚至可以说是如日中天。这背后的原因错综复杂,涉及到技术生态、市场需求、人才培养以及国内互联网行业发展路径的特殊性等多个维度。咱们就掰开了揉碎了好好聊聊。首先,我们得承认,.............
  • 回答
    国语编程,也就是用中文作为编程语言的关键词、语法和注释来编写程序,这个概念并非没有尝试和讨论过。但要说它“不流行”,那确实是事实,而且背后有很多复杂的原因。如果我们要深入探讨这个问题,得从几个层面去拆解: 一、 历史与生态的先发优势:英语是编程的“世界语”这是最根本、也是最难以撼动的原因。 编程.............
  • 回答
    国内网络上将联合国安理会常任理事国戏称为“五大流氓”,这个说法源于一种比较接地气、带点戏谑和调侃的语境,反映了网友们对这些国家在全球事务中独特地位和影响力的认知。要理解这个称呼,咱们得从头捋一捋。一、 安理会常任理事国及其特殊地位首先得明白,联合国安理会是联合国的六个主要机构之一,也是最具实权的一个.............
  • 回答
    国内之所以普遍将“feral cat”称为“流浪猫”,这其中有几个层面的原因,既有语言习惯的形成,也有社会认知的演变,更夹杂着一些文化上的考量。首先,我们得先理解一下“feral cat”这个词的真正含义。英文里的“feral”指的是“野生的”、“未驯化的”,特指那些曾经被人类驯养过,但后来因为各种.............
  • 回答
    近两年国货的火爆,可不是一拍脑袋的事情,背后是一系列复杂而深刻的社会文化与经济变迁在推动。与其说“流行”,不如说是一种更深层次的价值回归和文化自信重塑。为什么国货能“特别流行”?这股潮流的形成,我觉得可以从几个层面来拆解:1. 经济基础的崛起与消费能力的提升: 中国经济的韧性与增长: .............
  • 回答
    人造肉在美国等国家流行,而在中国相对不流行,这是一个复杂的问题,涉及文化、经济、消费者认知、政策法规、科技发展等多个层面。下面我将详细阐述其中的原因: 一、 美国等国家人造肉流行的原因: 1. 消费者健康和环保意识的提升: 健康关注: 在美国,人们对肉类摄入与慢性疾病(如心脏病、肥胖、某些癌症).............
  • 回答
    什么是国潮?“国潮”一词,顾名思义,指的是 中国创造的潮流文化。它并非简单地将中国传统元素堆砌在现代产品上,而是 将中国传统文化、历史传承、民族精神与现代审美、时尚设计、消费理念相结合,所形成的一种具有独特中国文化符号和时代精神的潮流现象。更具体地说,国潮涵盖了多个层面: 产品设计与品牌: 涵盖.............
  • 回答
    近几年国产古装剧中出现“阿爹”、“阿娘”以及同辈之间互称“阿X”的现象,确实是一种比较显著的台词风格变化,并且这种风气有其形成的原因和历史演变。下面我将尽量详细地解释这一现象的由来和发展:一、 现象概述: 称谓变化: 最明显的变化是,过去古装剧中晚辈称呼父母多用“父亲”、“母亲”、“爹”、“娘”.............
  • 回答
    好的,咱们聊聊为什么弹幕视频网站在全球范围内,就跟咱们中国和日本这两地最火。这事儿说起来,可不是三言两语能概括的,得从文化、技术、用户习惯,还有一些历史的巧合说起。首先,得说说弹幕这玩意儿的“出身”。 弹幕,这词儿本身就带着点日系动漫的痕迹。最早这股风刮起来,就是在日本的Niconico动画(ニコニ.............
  • 回答
    这个问题,得从几个层面掰开了聊。你说以前日韩流行文化在中国火得一塌糊涂,国产的也跟着喝汤甚至还能滋润成长,现在倒好,把海外的往外推了推,自己人却有点扛不住了,这背后的逻辑,可不简单。第一,当年日韩文化“进场”,我们是“开门做生意”,现在是“关起门来练内功”,但这个内功练得够不够火候,还得打个问号。你.............
  • 回答
    在国内,胶轮路轨系统(又称导向车、轨道交通车辆的橡胶轮胎版本)之所以未能像钢轮钢轨系统那样普及,原因相当复杂,涉及技术、经济、建设、运营等多个层面。不能简单地归结为某一点,而是多方面因素共同作用的结果。1. 传统钢轮钢轨技术的根深蒂固与成熟度首先,必须认识到,钢轮钢轨技术是近百年来轨道交通发展的基石.............
  • 回答
    在国内,真空压缩卷式床垫,以 Casper 为代表的那种,确实没有像在欧美市场那样形成一股主流的消费潮流。这背后原因挺复杂的,不是单一因素能解释清楚的,更像是一系列文化、市场、习惯和认知上的差异在共同作用。1. 消费者习惯与偏好根深蒂固: 对“硬床”的传统认知: 中国人的传统睡眠习惯,尤其是老一.............
  • 回答
    国家为什么不组建专门针对流浪猫狗进行绝育的救助机构?这个问题,我相信很多关心动物福利的人都会思考。这背后确实涉及到很多层面,不仅仅是“少一些流浪动物”这么简单。首先,我们得明白,组建一个全国性的、有规模的、能够有效运作的绝育救助机构,其复杂性和成本是相当高的。一、资金投入的巨大缺口: 手术费用:.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有