虽然两者是相同的键/值存储,并且都可以运行(最近的Cassandra)Hadoop层,然后什么使得Hadoop在大数据上需要处理/分析时成为更好的候选者。
我也发现了两个很好的细节
http://ria101.wordpress.com/2010/02/24/hbase-vs-cassandra-why-we-moved/
但我仍然在寻找Hbase的具体优势。
虽然我更加相信Cassandra,因为它简单的添加节点和无缝复制和没有故障点的功能。它也保持二级索引功能,所以它的好加。
话虽如此,我将解释HBase提交者Andrew Purtell并添加一些我自己的经验:
> HBase在更大的生产环境(1000个节点),虽然仍然在Cassandra的〜400节点的安装,所以其真正的边际差别的球场。
> HBase和Cassandra都支持集群/数据中心之间的复制。我相信HBase的曝光更多的用户,所以它似乎更复杂,但然后你也得到更多的灵活性。
>如果您的应用程序需要强一致性,那么HBase可能更适合。它的设计从根本上是一致的。例如,它允许更简单的实现原子计数器(我认为Cassandra刚刚得到它们)以及检查和放置操作。
>写性能是伟大的,从我的理解,这是Facebook与HBase为他们的使者的原因之一。
>我不确定Cassandra的有序分区器的当前状态,但在过去它需要手动重新平衡。 HBase会为您处理。有序分区器对于Hadoop样式处理很重要。
> Cassandra和HBase都很复杂,Cassandra只是隐藏它更好。 HBase通过使用HDFS为其存储更多地暴露它,如果你看代码库Cassandra是分层的。如果你比较Dynamo和Bigtable论文,你可以看到Cassandra的操作理论实际上更复杂。
> HBase有更多的单元测试FWIW。
>所有Cassandra RPC都是Thrift,HBase有一个Thrift,REST和本地Java。 Thrift和REST只提供总客户端API的一个子集,但是如果你想要纯粹的速度本地Java客户端在那里。
>对等和主到从有两个优点。主从设置通常使调试更容易,并减少了相当多的复杂性。
> HBase不仅仅绑定到传统的HDFS,您可以根据您的需要更改您的底层存储。 MapR看起来很有趣,我听说过好东西,虽然我没有自己使用它。