大資料分散式系統原理概述
一、分散式系統的理論
1、CAP原理
CAP原理指的是,一致性(Consistency)、可用性(Availability)、分割槽容忍性(Partition tolerance)這三個要素最多隻能同時實現兩點,不可能三者兼顧。因此在進行分散式架構設計時,必須做出取捨。而對於分散式資料系統,分割槽容忍性是基本要求 ,否則就失去了價值。因此設計分散式資料系統,就是在一致性和可用性之間取一個平衡。
其中:
一致性(C):在分散式系統中的所有資料備份,在同一時刻是否同樣的值。(等同於所有節點訪問同一份最新的資料副本)
可用性(A):在叢集中一部分節點故障後,叢集整體是否還能響應客戶端的讀寫請求。(對資料更新具備高可用性)
分割槽容錯性(P):以實際效果而言,分割槽相當於對通訊的時限要求。系統如果不能在時限內達成資料一致性,就意味著發生了分割槽的情況,必須就當前操作在C和A之間做出選擇。
2、BASE理論
BASE是Basically Available(基本可用)、Soft state(軟狀態)和Eventually consistent(最終一致性)三個短語的簡寫,BASE是對CAP中一致性和可用性權衡的結果,其來源於對大規模網際網路系統分散式實踐的結論,是基於CAP定理逐步演化而來的,其核心思想是即使無法做到強一致性(Strong consistency),但每個應用都可以根據自身的業務特點,採用適當的方式來使系統達到最終一致性(Eventual consistency)。
二、資料分割方式
1、雜湊方式
優點:
雜湊性:好
元資訊:只需要函式+伺服器總量
缺點:
可擴充套件性:差。一旦叢集規模擴充套件,大多數資料都需要被遷移並重新分佈
資料傾斜:當某個使用者id的資料量異常龐大時,容易達到單臺伺服器處理能力的上限
2、按資料範圍分佈
將資料按特徵值的值域範圍劃分資料。
優點:
可擴充套件性:好。靈活根據資料量拆分原有資料區間
缺點:
元資訊:大。容易成為瓶頸
3、按資料量分佈
與按範圍分佈資料方式類似,元資訊容易成為瓶頸
4、一致性雜湊
用一個hash函式計算資料(特徵)的hash值,令該hash函式的值域成為一個封閉的環,將節點隨機分佈在環上。每個節點負責處理從自己開始順時針到下一節點的值域上的資料
優點:
可擴充套件性:極好。任意動態新增、刪除節點,隻影響相鄰節點
缺點:
元資訊:大而且複雜
隨機分佈節點容易造成不均勻
動態增加節點後只能緩解相鄰節點
一個接點異常時壓力全轉移到相鄰節點
三、副本策略
1、中央化副本控制協議
副本控制協議指按特定的協議流程控制副本資料的讀寫行為,使得副本滿足一定的可用性和一致性要求的分散式協議。副本控制協議可以分為兩大類“中心化(centralized)副本控制協議”和“去中心化(decentralized)副本控制協議”。
中心化副本控制協議的基本思路:由一箇中心節點協調副本資料的更新、維護副本之間的一致性。所有副本相關的控制交由中心節點完成,併發控制由中心節點完成,從而簡化一個分散式併發控制問題為一個單機併發控制問題。而所謂併發控制,即多個節點同時需要修改副本資料時,需要解決“WW”,"RW"等併發衝突。
2、副本的一致性
副本的consistency是針對分散式系統而言的,不是針對某一個副本而言。根據強弱程度分為:
①強一致性:任何時刻任何使用者/節點都可以讀到最近一次更新成功的副本資料
②單調一致性:任何時刻任何使用者一旦讀到某個資料某次更新後的值,就不會再讀到更舊的值
③會話一致性:任何時刻任何使用者在某次會話內一旦讀到某個資料某次更新後的值,就不會在這次會話再讀到更舊的值
④最終一致性:各個副本的資料最終將達到一致狀態,但時間不保證
⑤弱一致性:沒有實用價值
3、Primary-secondary協議
Primary-secondary協議是中心化副本控制協議中常常用到的,該協議將副本分為兩大類:其中有且僅有一個副本作為primary副本,除primary意外的副本都作為secondary副本。維護primary副本的節點作為中心節點,中心節點負責維護資料的更新、併發控制、協同副本的一致性。
1)Primary-secondary協議資料更新基本流程:
①資料更新都由primary節點協調完成
②外部節點將更新操作發給primary節點
③primary節點進行併發控制即確定併發更新操作的先後順序
④primary節點將更新操作傳送給secondary節點
⑤primary根據secondary節點的完成情況決定更新是否成功並將結果返回外部節點
2)資料讀取方式
與資料更新流程類似,讀取方式也與一致性高度相關。使用primary-secondary比較困難的是實現強一致性。實現強一致性一般有如下幾個思路:
①始終只讀primary副本的資料
②由primary控制節點secondary節點的可用性。
③基於Quorum機制
3)Primary副本的確定和切換
primary副本的確定通常由原資訊管理,由專門的元資料伺服器維護,執行更新操作時,首先查詢元資料伺服器獲取副本的primary資訊,從而進一步執行資料更新流程。
primary副本的切換通常可以使用lease機制來完成。
4)資料同步
資料同步是因為primary副本可能會存在於secondary副本不一致的問題。通常有如下三種形式:
①由於網路分化等異常,secondary上的資料落後於primary上的資料。—— redo primary副本上的操作日誌。
②在某些協議下,secondary上的資料有可能是髒資料,需要被丟棄。—— undo日誌的方法刪除髒資料
③secondary是一個新增加的副本,完全沒有資料,需要從其他副本上拷貝資料。—— 使用primary副本的snapshot(快照)功能
4、Paxos協議
多個節點直接通過操作日誌同步資料,如果只有一個節點稱為主節點,就很容易在多個節點之間維護資料一致性。然後主節點可能出現故障,那麼就需要選出主節點。Paxos協議就是用於解決多個節點之間的一致性問題。
在paxos演算法中,分為4種角色:
Proposer :提議者
Acceptor:決策者
Client:產生議題者
Learner:最終決策學習者
最終決策的paxos演算法行為
①Proposer提出議題
②Acceptor初步接受 或者 Acceptor初步不接受
③如果上一步Acceptor初步接受則Proposer再次
④向Acceptor確認是否最終接受
⑤Acceptor 最終接受 或者Acceptor 最終不接受
相關推薦
大資料分散式系統原理概述
一、分散式系統的理論 1、CAP原理 CAP原理指的是,一致性(Consistency)、可用性(Availability)、分割槽容忍性(Partition tolerance)這三個要素最多隻能同時實現兩點,不可能三者兼顧。因此在進行分散式架構設計時,必須做出取捨。
Atittit HDFS hadoop 大資料檔案系統java使用總結 目錄 1. 作業系統,進行操作 1 2. Hdfs 類似nfs ftp遠端分散式檔案服務 2 3. 啟動hdfs服務start
Atittit HDFS hadoop 大資料檔案系統java使用總結 目錄 1. 作業系統,進行操作 1 2. Hdfs 類似nfs ftp遠端分散式檔案服務 2 3. 啟動hdfs服務start-dfs.cmd 2 3.1. 配置core-site
資料儲存:大資料儲存系統(1)--- 分散式檔案系統
分散式檔案系統一、分散式系統概念(1)分散式系統型別:Client/Server、P2P(Peer-to-Peer)、Master/Worker(2)故障模型(Failure Model):Fail stop:出現故障時,程序停止/崩潰Fail slow:出現故障時,執行速度
大資料儲存系統(1)--- 分散式檔案系統
分散式檔案系統 一、分散式系統概念 (1)分散式系統型別: Client/Server、P2P(Peer-to-Peer)、Master/Worker (2)故障模型(Failure Model): Fail stop:出現故障時,程序停止/崩潰 Fail slow:出現故
大資料分散式儲存的部署模式:分離式or超融合
大資料分散式儲存的部署模式:分離式or超融合 資料中心內部系統的核心要求是“穩定可靠”,一是指系統在執行過程中有能力提供連續可靠的服務,長時間無故障執行;二是指當故障發生之後,有能力快速定位,及時排查,故障範圍不蔓延。 分離式部署的方式,使得系統與雲平臺系統相獨立,避免了計算和儲存爭搶CPU
大資料推薦系統架構
推薦系統介紹 當下,個性化推薦成了網際網路產品的標配。但是,人們對推薦該如何來做,也就是推薦技術本身,還不甚瞭解。為此,好學的你肯定在收藏著朋友圈裡流傳的相關文章,轉發著微博上的相關討論話題,甚至還會不斷奔走在各種大小行業會議之間,聽著大廠職工們講那些乾貨。我知道,這樣碎片化的吸收,增加了知識的
分散式系統原理(10)CAP 理論
CAP 理論 CAP 理論是由 Eric Brewer 提出的分散式系統中最為重要的理論之一。本文將 CAP 理論安排在原理部分的最後介紹是為了利用前面已經介紹過的幾種分散式協議來幫助理解 CAP 理論 定義 CAP 理論的定義很簡單,CAP 三個字母分別代表了分散式系統中三
分散式系統原理(9)Paxos 協議
Paxos 協議 簡介 Paxos 協議是少數在工程實踐中證實的強一致性、高可用的去中心化分散式協議 Paxos 協議的流程較為複雜,但其基本思想卻不難理解,類似於人類社會的投票過程。Paxos 協議中,有一組完全對等的參與節點(稱為 accpetor),這組節點各自就某一事
分散式系統原理(8)基於 MVCC 的分散式事務
基於 MVCC 的分散式事務 實現分散式事務除了使用類似“兩階段提交”協議等方式外,另一種簡單高效的方式就是使用MVCC(Multi-version Cocurrent Control,多版本併發控制)技術。MVCC 技術最初也是在資料庫系統中被提出,但這種思想並不侷限於單機的分散式
分散式系統原理(7)兩階段提交協議
兩階段提交協議 問題背景 兩階段提交(two phase commit)協議是一種歷史悠久的分散式控制協議。最早用於在分散式資料庫中,實現分散式事務。這裡有必要首先簡單介紹一下兩階段提交的最初問題背景,從而能更好的理解該協議 在經典的分散式資料庫模型中,同一個資料庫的各個副本
分散式系統原理(6)日誌技術
日誌技術 日誌技術是宕機恢復的主要技術之一。日誌技術最初使用在資料庫系統中。嚴格來說日誌技術不是一種分散式系統的技術,但在分散式系統的實踐中,卻廣泛使用了日誌技術做宕機恢復,甚至如 BigTable 等系統將日誌儲存到一個分散式系統中進一步增強了系統容錯能力 本章首先簡單介紹資料
分散式系統原理(5)Quorum 機制
分散式系統原理(5)Quorum 機制 Quorum 機制是一種簡單有效的副本管理機制。本節首先討論一種最簡單的副本控制規則 write-all-read-one,在此基礎上,放鬆約束,討論 quorum 機制 約定 為了簡化討論,本節先做這樣的約定:更新操作(write)是
大資料推薦系統演算法程式碼全接觸(機器學習演算法+Spark實現)
大資料推薦系統演算法程式碼全接觸(機器學習演算法+Spark實現)課程出自學途無憂網 課程分享地址:https://pan.baidu.com/s/1piCNIxC2Sv0zMY0yWxY9Ug 提取碼:b10v 一、課程簡介: 推薦系統是利用電子商務網站向
大資料linux系統部分命令解析(2)0912
1.檢視ip ifconfig 解釋: ifconfig 常用命令關閉網絡卡,檢視ip。請看幫助! NAME ifconfig - configure a network interface SYNOPSIS ifconf
大資料學習系統發展的技術路線
自從大資料出來後,資料管理界發生了巨大的變化,技術驅動成為大資料管理系統的一個主要變革力量。 傳統的資料庫管理系統以結構化資料為主,因此關係資料庫系統(RDBMS)可以一統天下滿足各類應用需求。然而,大資料往往是半結構化和非結構化資料為主,結構化資料為輔,而且各種大資料應用通常需
EasyScheduler大資料排程系統架構分享
EasyScheduler大資料排程系統架構分享 導語 EasyScheduler是易觀平臺自主研發的大資料分散式排程系統。主要解決資料研發ETL 錯綜複雜的依賴關係,而不能直觀監控任務健康狀態等問題。EasyScheduler以DAG流式的方式將Task組裝起來,可實時監控任務
經典資料視覺化案例-賓士中國DSS決策支援大資料分析系統
每一家汽車行業的銷售模式基本上都是大同小異的,有總部,全國有4S店,而對於汽車行業的資料管理和資料分析,也是當前所有汽車行業急需要解決的問題,隨著汽車技術的日趨成熟和競爭的加劇,找到新的突破口或是解決經營中所出現的問題,對汽車行業來顯得尤為重要。當大資料來臨時,
智慧能源大資料管理系統開發,工廠園區系統開發
能源消耗過高,是工業型園區的普遍現象,工業企業能源消耗量佔全國能源消耗總量的70%左右,對於工業園區普遍的半粗放半資訊化的管理現狀,源中瑞科技提供一系列的軟體服務,利用全新的理念與技術,顯著節約園區的能源消耗,實現能源節約。智慧能源精細化管理平臺整合IT領域和自動化領域的關鍵應用系統,為工廠園區提供全方位的能
0基礎學大資料如何系統的規劃學習之路?
不知道你是計算機專業應屆生還是已經從業者。總之,有java基礎的學生學習大資料會輕鬆很多,零基礎的小白都需要從java和linux學起。如果你是一個學習能力特別強,而且自律性也很強的人的話可以通過自學。 大資料是當時時代下一門炙熱的IT學科,行情十分火爆,不論是阿里巴巴、百
大資料(十二)--Spark概述
Spark 簡介 Spark官網為: http://spark.apache.org/, Spark也是用於海量資料處理的計算框架. 官方對Spark的定義是: Apache Spark™ is a unified analytics engine fo