官术网_书友最值得收藏!

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數據庫之一。

主站蜘蛛池模板: 谢通门县| 南川市| 敖汉旗| 崇文区| 通江县| 临夏市| 罗城| 江口县| 六安市| 三河市| 西充县| 陈巴尔虎旗| 礼泉县| 张家港市| 亚东县| 通道| 滕州市| 杭州市| 黄平县| 林甸县| 德州市| 黄冈市| 攀枝花市| 石家庄市| 本溪市| 卢湾区| 娱乐| 宁安市| 洛隆县| 潜江市| 望江县| 航空| 噶尔县| 舞钢市| 梨树县| 青田县| 眉山市| 颍上县| 兴义市| 汪清县| 新绛县|