發布時間: 2022-03-10 16:00:15
分布式列存儲框架,在生產生活中會接觸到很多信息數據,而大部分信息是由非結構化數據組成的,特別是在大數據處理過程中尤為明顯。這些數據都無法用關系型數據庫的思維方式建模,因此在大數據的處理過程中,就出現了很多非結構化數據處理需求。
為了存儲便利,易于理解,在完整的大數據體系中采用了很多NoSQL(Not OnlySQL的縮寫)數據庫?;贜oSQL理念設計的最著名的系統是Google的BigTable和滑鐵盧大學開發的HBase。Facebook將Google BigTable和Amazon Dynamo的完全分布式架構集于一身,開發了Cassandra,后于2010年正式成為了Apache基金會項目。
Cassandra和HBase的出現不但使NoSQL的處理速度得到了前所未有的提升,而且它們能夠組成集群化也為Hadoop、Spark等需要大容量數據快速寫入的業務場景提供了非常有用的工具。著名的甲骨文公司Oracle也有自己的NoSQL產品,叫做NoSQL Database。
1.Cassandra簡介
Cassandra的名字來源于希臘神話的一位女先知,因此該項目的Logo是一只明亮的眼睛。最突出的特點是它的可擴展性,給集群添加新節點時,可以直接指向新的主機,不必重啟任何進程和改變任何查詢,是非常便利的自動熱擴展機制。這是一個非常好的特性。
此外,Cassandra還有一個優良的特性,即支持SQL語言。這也讓廣大的SQL愛好者覺得非常親切,大大降低了學習的門檻。
2.HBase簡介
HBase采用Java語言開發,和Cassandra一樣,同樣借鑒了Google的BigTable模型,主要為Hadoop生態圈提供了列存儲服務。
HBase使用HFile對文件進行列式存儲,HFile存儲以列族為單位。在讀取時如果只需用行鍵作為索引要掃描一個列族的內容,那么其他不相干的列族即便存在和索引條件對應的邏輯關系也不會被掃描到,這種方式在一定程度上避免了IO擁塞,也更加適合這種小尺寸的OLTP操作。
但是和Cassandra一樣,HBase也不支持事務操作。
3.Cassandra和HBase對比
(1)Cassandra部署更簡單。Cassandra只有一種角色,而HBase除了RegionServer外還需要ZooKeeper來同步集群狀態。
(2)數據一致性是否可配置。Cassandra的數據一致性是可以配置的,可以更改為最終一致性,而HBase是強一致性的。
(3)負載均衡算法不同。Cassandra通過一致性哈希來決定數據存儲的位置,而HBase靠Master節點管理數據的分配,將過熱的節點上的Region動態分配給負載較低的節點。因此Cassandra的平均性能會優于HBase,但是Hbase有Master節點,熱數據的負載更均衡。
(4)單點問題。正是由于Hbase存在Master節點,因此會存在單點問題。
上一篇: 如何優化大數據量查詢的速度
下一篇: 怎么安裝Spark