書名: 分布式實時處理系統:原理、架構與實現作者名: 盧譽聲本章字數: 972字更新時間: 2019-01-03 10:50:24
1.5.4 常見分布式存儲系統
本節將著重介紹幾個在實際生產環境中經常用到的分布式存儲系統,而像Cassandra這樣常見的鍵值存儲系統,我們也會在后續的編程實戰章節中使用到。
1.Hbase
HBase是一款面向列的開源分布式數據庫。其實就是Google的BigTable的開源實現,是Hadoop的一個子項目,是專門用于存儲非結構化數據的數據庫。面向列數據庫的邏輯模型前文已經介紹過,這里不再闡述。
HBase也是一個主從式的存儲系統。其系統架構由以下幾部分組成。
1)Zookeeper:一個獨立的集群協調項目,用在許多項目之中,可以簡化集群協調管理。
2)HMaster:整個集群的控制者,負責管理用戶的增刪改查,管理HRegionServer的負載均衡。同時若HRegionServer失效,負責進行失效方的資源遷移。此外,由于HBase使用了Zookeeepr的首領枚舉功能,且啟動后會啟動多個HMaster,因此可以避免單點故障問題。
3)HRegionServer:相當于集群中的數據節點,負責相應用戶I/O請求,并向HDFS中寫入數據。
此外,正如BigTable將實際數據存儲在GFS上一樣,HBase將其數據存放在HDFS上,這樣就可以簡化數據的分布式存放問題。
2.Cassandra
Cassandra不同于其他的存儲系統,它是一個全分布式的數據庫系統。它是一款混合型的非關系型數據庫。其基礎是Amazon的Dynamo,在此基礎上融合了Google BigTable的列族數據模型。同時又采用P2P的模型實現集群去中心化。Cassandra是一個在生產環境中廣泛使用的分布式存儲系統。在本書的后續實戰中,將會使用Cassandra作為存儲系統。
相比于HBase, Cassandra有以下幾個特點。
1)模式靈活:HBase中所有數據都是二進制存儲,而Cassandra則模仿一些面向文檔的存儲系統,支持一些基本類型,同時又采取列族的方式,便于擴展模式。
2)無單點故障:由于Cassandra去中心化,并不會像有些主從系統那樣主節點宕機導致整個集群不可使用。
3)可擴展性好:由于Cassandra是全分布式系統,因此可以進行簡單的水平擴展,方便擴大集群規模。
3.MongoDB
MongoDB是一種面向文檔的非關系型數據庫,也就是說,在MongoDB中每條記錄就是一個文檔,文檔之間獨立存儲,而且可以很好地和面向對象的設計相結合,無須像關系型數據庫那樣手動封裝SQL。此外,這種松散的存儲形式便于系統實現分布式存儲查詢。
MongoDB使用BSON作為數據存儲格式,這是一種類JSON的二進制存儲協議。MongoDB利用這種協議實現了高效的數據讀寫性能。
MongoDB由于是面向文檔的數據庫,因此相對來說模式自由,同時又支持大量的基本數據類型,相對于其他的NoSQL數據庫而言又有強大的查詢功能,因此在當今需求變化迅速、對并發要求較高的互聯網市場,是非常合適的產品。現在也成為最熱門的NoSQL數據庫之一。
- Citrix XenApp Performance Essentials
- Designing Purpose:Built Drones for Ardupilot Pixhawk 2.1
- Linux實戰
- UNIX操作系統設計
- 網絡操作系統:Windows Server 2003管理與應用
- 精通Linux內核開發
- 嵌入式Linux系統開發:基于Yocto Project
- Extending Bootstrap
- 嵌入式Linux應用開發菜鳥進階
- 網絡操作系統教程:Windows Server 2016管理與配置
- Windows 7中文版從入門到精通(修訂版)
- μC/OS-III內核實現與應用開發實戰指南:基于STM32
- iOS 10快速開發:18天零基礎開發一個商業應用
- Linux集群之美
- 辦公自動化教程(Windows7+Office2010)