Cassandra與HBase比較(區別)


下表說明了Cassandra和HBase之間的主要區別:

HBase Cassandra
HBase是基於Bigtable(Google) Cassandra基於DynamoDB(亞馬遜)。 它最初是由前亞馬遜工程師在Facebook開發的。 這是Cassandra支援多資料中心的原因之一。
HBase使用Hadoop基礎架構(Zookeeper,NameNode,HDFS)。 部署Hadoop的組織必須具備Hadoop和HBase的知識。 Cassandra與Hadoop分開開發,其基礎工具和操作知識的要求與Hadoop不同。 然而,對於分析,許多Cassandra部署使用Cassandra + Storm(使用zookeeper)和/或Cassandra + Hadoop。
HBase-Hadoop基礎工具有幾個由Zookeeper,Name Node,HBase master和資料節點組成的「移動部件」,Zookeeper是叢集的,自然是容錯的。名稱節點需要叢集為容錯。 Cassandra使用單個節點型別。 所有節點相等並執行所有功能。 任何節點都可以作為協調器,確保沒有Spof。 新增Storm或Hadoop當然會增加基礎設施的複雜性。
HBase非常適合進行基於範圍的掃描。 Cassandra不支援基於範圍的行掃描,這可能在某些用例中是有限制的。
HBase提供跨越一個HBase叢集的非同步複製。 Cassandra隨機分割區提供了跨越單行的行複製。
HBase僅支援有序分割區。 Cassandra正式支援有序分割區,但Cassandra沒有生產使用者使用有序分配,由於「熱點」建立並操作困難等熱點引起。
由於有序分割區,HBase可以輕鬆地水平放置,同時還支援Rowkey範圍掃描。 如果資料儲存在Cassandra的列中以支援範圍掃描,Cassandra中行大小的實際限制是10兆位元組。
HBase支援原子比較和設定,HBase支援一行內的事務。 Cassandra不支援原子比較和設定。
HBase不支援單行讀取負載平衡,一行只有一個區域伺服器一次提供。 Cassandra將支援單行讀取負載平衡。
Bloom過濾器可用於HBase作為另一種形式的索引。 Cassandra使用bloom過濾器進行鍵查詢。
觸發器由HBase中的協處理器功能支援。 Cassandra不支援協處理器功能。