定義
? 多個通過網路互聯的計算機都具有一定的計算能力,它們之間互相傳遞資料,實作資訊共享,協作共同完成一個處理任務
原理
? 分布式計算就是將計算任務分攤到大量的計算節點上,一起完成海量的計算任務
優點
- 稀有資源共享
- 通過分布式計算可以在多臺計算機上平衡計算負載
- 可以把程式放在最適合運行它的計算機上
ACID原則
? ACID是資料庫事務正常執行的四個原則
- A(atomicity)-- 原子性
- C(consistency)-- 一致性
- I(isolation)-- 獨立性
- D(durability)-- 持久性
CAP理論
? 一個分布式系統最多只能同時滿足一致性、可用性、磁區容錯性 三項中的兩項
- 一致性(consistency)
- 可用性(availability)
- 磁區容錯性(partition tolerance)
BASE理論
? base是指基本可用性(basically available)、軟狀態(soft state)、最終一致性(eventual consistency)
最終一致性分為:強一致性、弱一致性、最終一致性
一致性散列
? 一致性散列將整個散列值空間組織成一個虛擬的圓環
影子節點沒有提供服務的能力
分布式系統的特性
- 容錯性
- 高可擴展性
- 開放性
- 并發處理能力
- 透明性
分布式存盤系統實體 Apache Hadoop
簡介
? Hadoop是由Apache基金會開發的分布式存盤與計算框架
組成
? Hadoop是由兩個重要模塊組成
- 一個是Hadoop分布式檔案系統(Hadoop Distributed File System,HDFS),可以將檔案資料分布式地存盤在集群中的不同節點上
- 另一個是MapReduce系統,一個針對大量資料的分布式計算系統
HDFS
? Hadoop分布式檔案系統是一個主從式的分布式檔案系統,是GFS的一種開源實作
HDFS可以利用大量廉價存盤器組成分布式存盤集群,取代昂貴的集中式磁盤存盤陣列
HDFS集群組成
? HDFS集群由一個NameNode和多個DataNode組成,除此之外還有用于熱備份的Secondary Name Node,防止集群出現單點故障
- NameNode是整個集群的管理者,它并不存盤資料本身,而是負責存盤檔案系統的元檔案
- DataNode是實際的資料存盤節點,負責相應NameNode創建、洗掉和復制塊的命令
- Secondary Name Node是NameNode的備份節點,當NameNode宕機需要重啟時,則可以利用Secondary NameNode中的資料加快NameNode的重啟恢復資料
MapReduce
? MapReduce 既是Hadoop中的模塊,也是一個計算模塊
用戶需要自己將演算法劃分為Map和Reduce兩個階段
- 首先將資料劃分為小塊的資料,將資料分配到不同計算節點的Map任務中計算
- 然后將計算結果匯總到Reduce節點中進行合并,得出最終結果
分布式檔案存盤GFS
GFS–Google File System
GFS設計思路
-
將檔案劃分為若干塊(Chunk)存盤
每塊固定大小64M
-
通過冗余來提高可靠性
每個資料塊至少在3個資料塊服務器上冗余
-
通過單個Master來協調資料訪問、元資料存盤
-
無快取
GFS架構缺點
- 單點故障
- 性能瓶頸
解決單點故障問題
- 采用多個(如三個)影子Master節點進行熱備份,一旦主節點損壞,立刻選舉一個新的主節點服務
解決性能瓶頸問題
- 盡可能減少資料存取中Master參與程度
- Master不存任何資料,只有元資料
- 客戶端快取元資料
Master節點任務
- 存盤元資料
- 檔案系統目錄管理與加鎖
- 與ChunkServer進行周期性通信
- 資料塊創建、復制及負載均衡
- 垃圾回收
- 洗掉陳舊資料塊
GFS架構特點
- 采用中心服務器模式
- 不快取資料
- 在用戶態下實作
- 提供專用的訪問介面
GFS容錯機制
Master容錯
- 三類元資料:命名空間(目錄結構)、Chunk與檔案名的映射以及Chunk副本的位置資訊
- 前兩類通過日志容錯,chunk副本資訊存盤于Chunk Server, Master出現故障時可恢復
Chunk Server容錯
- 每個Chunk有多個存盤副本(通常為三個),分別存盤于不同的服務器上
- 每個Chunk又劃分為若干個Block(64KB),每一個Block對應一個32bit的校驗碼,保證資料正確(若某個Block錯誤,則轉移至其他Chunk副本)
分布式系統
分布式存盤系統的五個子方向
- 結構化存盤
- 非結構化存盤
- 半結構化存盤
- In-memory存盤
- NewSQL
結構化存盤
? 傳統結構化存盤強調以下內容:
- 結構化的資料
- 強一致性
- 隨機訪問
非結構化存盤
? 非結構化存盤強調的是高可擴展性
? 分布式檔案系統
半結構化存盤
? 半結構化是為了解決非結構化存盤系統隨機訪問性能差的問題
? 鍵-值
In-memory存盤
? 將資料存盤在記憶體中,從而獲得讀寫的高性能
? Redis、記憶體
NewSQL
分布式計算系統分類
- 傳統基于訊息的系統–MPI
- MapReduce家族系統–Hadoop的Mahout、Spark的MLI
- 圖計算系統
- 基于狀態的系統
- 實時流處理系統
典型的分布式系統
- 網格系統
- P2P系統
- 透明計算
- 區塊鏈系統
網格系統
? 能夠將多組織擁有和管理的計算機、網路、資料庫和科學儀器綜合協同使用的基礎設施
P2P系統
簡介
? 對等網路系統(Peer-To-Peer),簡稱P2P系統,即媒體及公眾所稱的“點對點系統”
P2P系統是一種應用在對等者(Peer)之間分配任務和作業負載的分布式應用架構的系統
三個性質
- 高度分散化
- 自組織性
- 多管理域
特點
- 部署低門檻
- 有機增長
- 對故障與攻擊的恢復力
- 資源的豐富性與多樣性
透明計算
? 是一種用戶無須感知計算機作業系統、中間件、應用程式和通信網路的具體所在,只需根據自己的需求,通過網路從所使用的各種資源設備中選擇并使用相應服務的計算模式
區塊鏈
簡介
? 區塊鏈(Blockchain)是一種去中心化、不可篡改、可追溯、多方共同維護的分布式資料庫系統
核心特征
- 塊鏈結構
- 多獨立拷貝存盤
- 拜占庭容錯
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278822.html
標籤:其他
下一篇:2021-04-21
