大规模分布式系统概念介绍
大規(guī)模分布式計(jì)算概念
1、分布式計(jì)算
分布式計(jì)算:研究如何把一個(gè)需要非常巨大的計(jì)算能力才能解決的問(wèn)題分成許多小的部分,然后把這些部分分配給許多計(jì)算機(jī)進(jìn)行處理,最后把這些計(jì)算結(jié)果綜合起來(lái)得到最終的結(jié)果。
分布式計(jì)算比起其它算法具有以下幾個(gè)優(yōu)點(diǎn):稀有資源可以共享;通過(guò)分布式計(jì)算可以在多臺(tái)計(jì)算機(jī)上平衡計(jì)算負(fù)載;可以把程序放在最適合運(yùn)行它的計(jì)算機(jī)上,其中,共享稀有資源和平衡負(fù)載是計(jì)算機(jī)分布式計(jì)算的核心思想之一。
2、并行計(jì)算
并行計(jì)算(Parallel Computing)是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程,是提高計(jì)算機(jī)系統(tǒng)計(jì)算速度和處理能力的一種有效手段
并行計(jì)算可分為時(shí)間上的并行和空間上的并行。時(shí)間上的并行就是指流水線技術(shù),而空間上的并行則是指用多個(gè)處理器并發(fā)地執(zhí)行計(jì)算
為利用并行計(jì)算,通常計(jì)算問(wèn)題表現(xiàn)為以下特征:
1)將工作分離成離散部分,有助于同時(shí)解決;
2)隨時(shí)并及時(shí)地執(zhí)行多個(gè)程序指令;
3)多計(jì)算資源下解決問(wèn)題的耗時(shí)要少于單個(gè)計(jì)算資源下的耗時(shí)
空間上的并行導(dǎo)致了兩類并行機(jī)的產(chǎn)生,分為:
單指令流多數(shù)據(jù)流(SIMD)
多指令流多數(shù)據(jù)流(MIMD)
常用的串行機(jī)也叫做單指令流單數(shù)據(jù)流(SISD)
MIMD類的機(jī)器又可分為以下常見(jiàn)的五類:
并行向量處理機(jī)(PVP)
對(duì)稱多處理機(jī)(SMP)
大規(guī)模并行處理機(jī)(MPP)
工作站機(jī)群(COW)
分布式共享存儲(chǔ)處理機(jī)(DSM)
并行計(jì)算機(jī)有以下五種訪存模型:
均勻訪存模型(UMA)
非均勻訪存模型(NUMA)
全高速緩存訪存模型(COMA)
一致性高速緩存非均勻存儲(chǔ)訪問(wèn)模型(CC-NUMA)
非遠(yuǎn)程存儲(chǔ)訪問(wèn)模型(NORMA)
3、云計(jì)算
云計(jì)算(cloudcomputing)是基于互聯(lián)網(wǎng)相關(guān)服務(wù)的增加、使用和交互模式,通常涉及通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。
云計(jì)算是一種理念,實(shí)際上是分布式技術(shù)+服務(wù)化技術(shù)+資源隔離和管理技術(shù)(虛擬化)
虛擬化和服務(wù)化是云計(jì)算的表現(xiàn)形式
虛擬化技術(shù)包括:資源虛擬化、統(tǒng)一分配檢測(cè)資源、向資源池中添加資源。重量級(jí)虛擬化產(chǎn)品:VMWare,輕量級(jí)虛擬化:Linux的LXC
服務(wù)思想包括:軟件即服務(wù)(SAAS)、平臺(tái)即服務(wù)(PAAS)、基礎(chǔ)設(shè)施即服務(wù)(IAAS)
云計(jì)算特點(diǎn)如下:
- 超大規(guī)模
- 虛擬化
- 高可靠性 使用了數(shù)據(jù)多副本容錯(cuò)、計(jì)算節(jié)點(diǎn)同構(gòu)可互換等措施來(lái)保障服務(wù)的高可靠性
- 通用性
- 高可擴(kuò)展性 規(guī)模可以動(dòng)態(tài)伸縮,滿足應(yīng)用和用戶規(guī)模增長(zhǎng)的需要
- 按需提供服務(wù)
- 極其廉價(jià) 特殊容錯(cuò)措施可以采用極其廉價(jià)的節(jié)點(diǎn)來(lái)構(gòu)成云,自動(dòng)化集中式管理使大量企業(yè)無(wú)需負(fù)擔(dān)日益高昂的數(shù)據(jù)中心管理成本,通用性使資源的利用率較之傳統(tǒng)系統(tǒng)大幅提升
- 潛在的危險(xiǎn)性
4、離線計(jì)算
在離線狀態(tài)下去分析這些數(shù)據(jù),要分析的數(shù)據(jù)量很大,一般用并行計(jì)算方式提高效率,是一種分布式計(jì)算應(yīng)用方式
5、實(shí)時(shí)計(jì)算
是指一種增量計(jì)算,是增量性的,少量的,變化的,來(lái)了就能算了。也是一種分布式計(jì)算應(yīng)用方式
6、迭代計(jì)算
需要考慮階段,上一階段的結(jié)果是下一個(gè)階段的條件,而且為了高效,最好中間結(jié)果保存內(nèi)存,不要頻繁讀寫(xiě)文件。也是一種分布式計(jì)算應(yīng)用方式
大規(guī)模分布式產(chǎn)品介紹
1、Hadoop
Hadoop是一個(gè)由Apache基金會(huì)所開(kāi)發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序,充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。
優(yōu)點(diǎn):
- 高可靠性 Hadoop按位存儲(chǔ)和處理數(shù)據(jù)的能力值得人們信賴
- 高擴(kuò)展性 Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中
- 高效性 Hadoop能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非常快
- 高容錯(cuò)性 Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配
- 低成本
Hadoop從最初的HDFS分布式文件系統(tǒng)發(fā)展為Hadoop+ZooKeeper+Hive+Pig+HBase生態(tài)系統(tǒng)
HDFS提供了一個(gè)可擴(kuò)縮的、容錯(cuò)的、可以在廉價(jià)機(jī)器上運(yùn)行的分布式文件系統(tǒng),按行存儲(chǔ),按64MB塊進(jìn)行文件拆分
HDFS的架構(gòu)是一個(gè)NameNode和多個(gè)DataNode的結(jié)構(gòu):
- NameNode:存儲(chǔ)HDFS的元數(shù)據(jù);管理文件系統(tǒng)的命名空間;創(chuàng)建、刪除、移動(dòng)、重命名文件和文件夾;接受從DataNode來(lái)的Heartbeat和Blockreport
- DataNode:存儲(chǔ)數(shù)據(jù)塊;執(zhí)行從NameNode來(lái)的文件操作命令;定時(shí)向NameNode發(fā)送Heartbeat和Blockreport
Hadoop并不是為了追求一個(gè)并行計(jì)算的框架而設(shè)計(jì),提供快捷和靈活的計(jì)算方式去服務(wù)各種計(jì)算場(chǎng)景,它更多的是一個(gè)分布式文件系統(tǒng),提供文件數(shù)據(jù)的存儲(chǔ)和查詢
2、Zookeeper
ZooKeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù)。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶
ZooKeeper在Hadoop生態(tài)體系中是作為協(xié)同系統(tǒng)出現(xiàn)的
ZooKeeper是以Fast Paxos算法為基礎(chǔ)的,ZooKeeper的基本運(yùn)轉(zhuǎn)流程:
- 選出Leader
- 同步數(shù)據(jù)
- 選出Leader過(guò)程中算法有很多,但要達(dá)到的選出標(biāo)準(zhǔn)是一致的
- Leader要具有最高的執(zhí)行ID,類似root權(quán)限
- 集群中大多數(shù)的機(jī)器得到響應(yīng)并接受選出的Leader
3、HBase
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)
HBase – Hadoop Database,是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)機(jī)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群
HBase位于結(jié)構(gòu)化存儲(chǔ)層,Hadoop HDFS為HBase提供了高可靠性的底層存儲(chǔ)支持;Hadoop MapReduce為HBase提供了高性能的計(jì)算能力;Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機(jī)制;Pig和Hive還為HBase提供了高層語(yǔ)言支持,使得在HBase上進(jìn)行數(shù)據(jù)統(tǒng)計(jì)處理變的非常簡(jiǎn)單;Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導(dǎo)入功能,使得傳統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)向HBase中遷移變的非常方便
HBase中的所有數(shù)據(jù)文件都存儲(chǔ)在Hadoop HDFS文件系統(tǒng)上,主要包括兩種文件類型
- HFile, HBase中KeyValue數(shù)據(jù)的存儲(chǔ)格式,HFile是Hadoop的二進(jìn)制格式文件,實(shí)際上StoreFile就是對(duì)HFile做了輕量級(jí)包裝,即StoreFile底層就是HFile
- HLog File,HBase中WAL(Write Ahead Log) 的存儲(chǔ)格式,物理上是Hadoop的Sequence File
4、Storm
一款用于實(shí)時(shí)分析的軟件,流式計(jì)算方式,支持消息分流,增量數(shù)據(jù)通過(guò)消息分發(fā),多個(gè)消息接受者并行接受處理
5、Spark
一款基于內(nèi)存的用于迭代計(jì)算的框架
6、MPI(Message Passing Interface)
是消息傳遞并行程序設(shè)計(jì)的標(biāo)準(zhǔn)之一,它是一個(gè)規(guī)范,定義了進(jìn)程間的通信接口,用于廣告算法和迭代算法
7、BSP(Bulk Synchronous Parallel 整體同步并行計(jì)算模型)
支持多階段,將復(fù)雜計(jì)算過(guò)程劃分多個(gè)階段,每個(gè)階段等待最慢的進(jìn)程計(jì)算完成才能進(jìn)行下一個(gè)階段,并且試圖通過(guò)一些參數(shù)指標(biāo)估算出并行計(jì)算時(shí)間
8、DAG(Directed Acycline Graph 有向無(wú)環(huán)圖)
支持計(jì)算任務(wù)流,構(gòu)成了一個(gè)任務(wù)并行流的概念
大規(guī)模分布式系統(tǒng)架構(gòu)模式
1、master-slave模式
實(shí)現(xiàn)方式:一臺(tái)計(jì)算機(jī)作為主調(diào)度者,然后其它幾臺(tái)計(jì)算機(jī)根據(jù)調(diào)度完成任務(wù);一臺(tái)計(jì)算機(jī)上多線程實(shí)現(xiàn);上述兩種方式結(jié)合實(shí)現(xiàn)擴(kuò)展,可以統(tǒng)一用socket進(jìn)行通信
特點(diǎn):
master必須一直存在于集群中,需要承擔(dān)分配任務(wù),負(fù)責(zé)協(xié)同一致性等角色,接受salve連接,探測(cè)感知salve狀態(tài)等等(master掛掉重選恢復(fù)問(wèn)題,責(zé)任過(guò)多問(wèn)題)
2、工廠管理模式
實(shí)現(xiàn)方式:
1)員工注冊(cè)到人資,管理者從人資中獲取員工信息
2)管理者負(fù)責(zé)分配任務(wù),并將任務(wù)分配給員工
3)員工從倉(cāng)庫(kù)獲取資源,執(zhí)行完成后將產(chǎn)品放回倉(cāng)庫(kù)
特點(diǎn):
管理者(調(diào)度)分配任務(wù),員工(多個(gè)程序)執(zhí)行任務(wù),人資(獨(dú)立程序)負(fù)責(zé)協(xié)同一致性等處理,倉(cāng)庫(kù)(可存放任務(wù)類型的對(duì)象)負(fù)責(zé)資源供給與產(chǎn)品存放
3、消息中心模式
對(duì)于上述管理者和員工之間通過(guò)消息中心進(jìn)行交互
4、網(wǎng)狀互聯(lián)模式
實(shí)體之間直接相連
5、外部級(jí)聯(lián)模式
6、內(nèi)部分階段模式
7、集群與兼容模式
8、服務(wù)化模式
采用webservice 、RESTFUL等
總結(jié)
以上是生活随笔為你收集整理的大规模分布式系统概念介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 分布式系统的一些基本概念
- 下一篇: 分布式系统概念与设计——阅读笔记(一)