下表說明了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不支持協處理器功能。 |
上一篇:
Cassandra數據模型
下一篇:
Cassandra與關係資料庫比較(區別)