HBase和Cassandra将近一年,它们已成为2010年Apache的最佳项目。但是,如果我们采用其内部机制的内部机制,我们会发现两者是完全不同的建筑风格。
HBASE起源于Google Begtable,几乎遵循了Boogtable论文的大多数建筑设计。Cassandra采用了Bigtable的数据模型,同时吸收了Amazon Dynamo的分布式设计。
因此,从存储结构模型的微观角度来看,HBase和Cassandra与单个点存储数据的机制相似,但是从分布式体系结构的宏观角度来看,两者非常不同。
由于两个参考和合规性的分布式体系结构产品是不同的,因此以前的bigtable,后者的发电机,因此最终的个性取向是不同的。后者分散的体系结构并在分布式帽定理中符合AP(分布式高可用性),以适应阅读过程中的最终一致性。
当我们在这里看到时,我们将首先了解这两个家伙并没有从分布式结构一直到一路走来,但是从单个点存储模型中,它们看起来相似。Memstorevs Memtable,所有这些都被刷到LSM--树结构(库存文件vs sstable文件),都使用bloomfilter和行索引的组合模式来索引。
有两个关键功能可以区分它们:
Cassandra还支持查询中的第二级索引,在CQL中构建-CQL(MySQL的SQL语法密闭),Sstable分层结构还集中于定位和查找;与HDF紧密结合,将库存中的kV排列以存储总体而言,Cassandra非常适合通过柱字段进行查找,HBase在扫描列进行柱分析方面更好。
本质是Cassandra的数据基于一致性哈希算法。根据哈希范围,该记录基于整个群集节点的随机分布以及整个群集节点的复杂性。执行较大的尺度定位和查询,充分利用群集的整体计算能力;
但是,HBase按顺序写在同一区域。数据量足够大,然后分割后,则HBase不适合频繁的数据定位和搜索范围,并且更适合于顺序扫描的设置分析。查询主要反映在附近的高性能中和热数据。
卡桑德拉(Cassandra)的群集分散化主要使用一致性哈希循环机制来实现数据的分布以及数据膨胀和容量收缩的数据迁移。)该机制在数据读取过程中实现了节点之间的比较,以确保数据一致性。这些是基于机制的机制的集群共识。如果它太大,它不容易管理,并且很容易导致网络通信过于密集。
但是,分散的体系结构Cassandra的优势在于,没有单点故障的群集没有隐藏的危险,高群集高,高度可用,并且操作和维护非常容易。
他们依赖的HBase和HADF基于集中式的集中管理。有HMASTER群集单点故障风险。因此,仅对于引入更高的部署复杂性是必要的。基础HDFS Namenode HA甚至超过服务部署的复杂性。
但是,无论是HBase的区域服务器还是HDFS数据台作为托管数据节点,它都比Cassandra的Peer节点简单得多。该关系是对主节点的被动处理。简单的节点功能,风险越小。
而不是卡桑德拉(Cassandra),有必要通过八卦协议的完整网络病毒通信状态确保群集的一致性。它还必须使用抗透镜(抗透镜)机制来执行节点复制数据的一致性比较。很大程度上,自然断层的风险将变得更大。因此,Hadoop HBase更适合管理大型数据节点。
HBase基于HMaster和Zookeeper协调,并实现了一个表格 - >列群集 - >区域以在单点HREGIONSERVER上写入。当区域分配和合并时,它将在多个Hregionserver节点上形成数据分布,因此HBASEIT强调写作过程的一致性,并且集群中的任何状态变化过程都将基于确保一致性的前提。
此外,基础HFILE文件的存储是在Hadoop HDF上构建的。高和可靠的文件由HDFS管理。HBASE的SO -ARIGE区域迁移没有实质性的文件移动,仅仅是HDFS元数据的更改。因此,HBase更适合于分布式环境中形成的文件的管理,并且可以完成群集的大量。
但是卡桑德拉(Cassandra)强调了高可用性,例如,在任何时候,首先要照顾好客户的感受,例如:提示的交接机制将使兄弟节点能够接管故障节点的要求。兄弟节点的单个失败风险。
此外,分散的体系结构几乎默认用于使用哈希算法来实现数据分布共识机制,但问题的问题是数据管理。例如,迁移过程必须通过物理级别诚实地移动。集中管理体系结构相对于分散的共识体系结构。
通过上述描述,实际上,我们可以分析它。Cassandra更适合数据分发,高速写作和通过第二级索引的数据分布优势,以实现SQL语法的字段搜索,并支持在线应用程序支持在线应用程序,以支持在线应用程序的存储大型数据生成的存储在更合适的方案中,在大型数据编写和查询中,可以实时替换MySQL。在交易不足和一致性要求的环境中,它是一个令人惊叹的在线在线在线和书面在线卷。BusinessSystems提供数据库支持。因此,其面向服务的领域非常重要。
HBASE更适合管理大型群集,实际上,在大型数据之上的结构化大规模数据支持以及满足强大的一致性要求,满足行事务的要求,可以使其连接一些关键的BusinessupSupport在线在高性要求下进行的真实时间分析,例如电子商务交易,金融交易等。- 规模扫描分析。它得到了Hadoop生态系统的支持。因此,HBase面对OLAP。
我们完成对其一般体系结构的比较分析,然后回到问题。首先,HBASE基于Hadoop和自然声誉,但其基本特征适用于对关键数据,大型群集数据管理和Hadoop Ecology的高借助支持。大型结构化数据的真实时间和离线分析。同时,HBase也在不断发展。它消除了长期建立的RIT(引起缓慢的迁移问题)。它解决了许多过去导致根源缓慢的问题,并且更适合于实时分析业务。
这些特征特别适合中国,这特别容易生成大型数据。它更适合由主要业务中大型制造商面临的大型用户生成的结构化数据。它支持通过HBASE的大量吞吐量的写作。在实时分析和数据可靠性需求中,大型制造商的工程师团队还可以消化Hadoop平台的复杂性。
Cassandra体系结构是最终的一致性,分散的,节点对 - 节点和组件的简化。它非常适合快速构造分布式数据库的一小部分集群。请找到需求点,为什么?
由于卡桑德拉(Cassandra)的定位是对在线交易的大规模数据支持,因此无缝连接SQL语法以满足大型大规模数据的快速查询,并且也适用于实时流媒体连接,但前提是编写数据。这是一个弱的一致性业务环境(尽管一致的调整配置支持强大的一致性,但成本太高)。
这更令人尴尬。严格的业务不合适。基于日志的业务国内Elasticsearch很受欢迎。MongoDB还提供可调节的分布式一致性。
但是,我相信,随着大数据技术的持续发展以及国内工程师的持续普及,卡桑德拉(Cassandra)拥有很多操作和维护团队将非常麻烦,尤其是物联网项目和大量数据的越来越多的搜索需求绝对在中小型团队中很受欢迎。
至于为什么外国公司更受欢迎,他们没有参与外国项目和团队,也不能急于得出结论。但是我可以看到并想到客观的推理包括两个方面:
作者:Xi'an Guardian Stone信息技术CTO CTO OLD FANG