Hadoop2.0架構(gòu)設(shè)計(jì)與原理_第1頁(yè)
Hadoop2.0架構(gòu)設(shè)計(jì)與原理_第2頁(yè)
Hadoop2.0架構(gòu)設(shè)計(jì)與原理_第3頁(yè)
Hadoop2.0架構(gòu)設(shè)計(jì)與原理_第4頁(yè)
Hadoop2.0架構(gòu)設(shè)計(jì)與原理_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Hadoop2.0架構(gòu)設(shè)計(jì)與原理數(shù)據(jù)中心-Alan主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的計(jì)算框架6YARN發(fā)展趨勢(shì)主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的基本框架6YARN發(fā)展趨勢(shì)Hadoop概述Hadoop是一個(gè)開(kāi)源的、可靠的、可擴(kuò)展的分布式并行計(jì)算框架主要組成:分布式文件系統(tǒng)HDFS和MapReduce算法執(zhí)行作者:DougCutting語(yǔ)言:Java,支持多種編程語(yǔ)言,如:Python、C++Hadoop的起源Hadoop是Google的集群系統(tǒng)的開(kāi)源實(shí)現(xiàn)Google集群系統(tǒng):GFS(GoogleFileSystem)、MapReduce、BigTableHadoop主要由HDFS(HadoopDistributedFileSystemHadoop分布式文件系統(tǒng))、MapReduceHadoop的初衷是為解決Nutch

的海量數(shù)據(jù)爬取和存儲(chǔ)的需要Hadoop于2005年秋天作為L(zhǎng)ucene的子項(xiàng)目Nutch的一部分正式引入Apache基金會(huì)。名稱起源:DougCutting兒子的黃色大象玩具的名字目前最新穩(wěn)定版本2.6.0什么是大數(shù)據(jù)數(shù)據(jù)集主要特點(diǎn)Volume:數(shù)量量從TB到PB級(jí)別Variety:數(shù)據(jù)類型復(fù)雜,超過(guò)80%的數(shù)據(jù)是非結(jié)構(gòu)化的Velocity:數(shù)據(jù)量在持續(xù)增加(兩位數(shù)的年增長(zhǎng)率)Value:巨大的數(shù)據(jù)價(jià)值其他特征數(shù)據(jù)來(lái)自大量源,需要做相關(guān)性分析需要實(shí)時(shí)或者準(zhǔn)實(shí)時(shí)的流式采集,有些應(yīng)用90%寫(xiě)vs.10%讀數(shù)據(jù)需要長(zhǎng)時(shí)間存儲(chǔ),非熱點(diǎn)數(shù)據(jù)也會(huì)被隨機(jī)訪問(wèn)什么是大數(shù)據(jù)某比薩店的電話鈴響了,客服人員拿起電話??头篨XX比薩店。您好,請(qǐng)問(wèn)有什么需要我為您服務(wù)?顧客:你好,我想要一份……客服:先生,煩請(qǐng)先把您的會(huì)員卡號(hào)告訴我。顧客:16846146***??头宏愊壬?!您是住在泉州路一號(hào)12樓120x室,請(qǐng)問(wèn)您想要點(diǎn)什么?顧客:我想要一個(gè)海鮮比薩……客服:陳先生,海鮮比薩不適合您。顧客:為什么?客服:根據(jù)您的醫(yī)療記錄,你的血壓和膽固醇都偏高。顧客:那你們有什么可以推薦的?客服:您可以試試我們的低脂健康比薩。顧客:你怎么知道我會(huì)喜歡吃這種的?客服:您上星期一在中央圖書(shū)館借了一本《低脂健康食譜》。顧客:好。那我要一個(gè)家庭特大號(hào)比薩,要付多少錢?客服:99元,這個(gè)足夠您一家六口吃了。但您母親應(yīng)該少吃,她上個(gè)月剛剛做了心臟搭橋手術(shù),還處在恢復(fù)期。顧客:那可以刷卡嗎?客服:陳先生,對(duì)不起。請(qǐng)您付現(xiàn)款,因?yàn)槟男庞每ㄒ呀?jīng)刷爆了,您現(xiàn)在還欠銀行4807元,而且還不包括房貸利息。顧客:那我先去附近的提款機(jī)提款??头宏愊壬鶕?jù)您的記錄,您已經(jīng)超過(guò)今日提款限額。顧客:算了,你們直接把比薩送我家吧,家里有現(xiàn)金。你們多久會(huì)送到?客服:大約30分鐘。如果您不想等,可以自己騎車來(lái)。顧客:為什么?客服:根據(jù)我們?nèi)蚨ㄎ幌到y(tǒng)的車輛行駛自動(dòng)跟蹤系統(tǒng)記錄。您登記有一輛車號(hào)為SB-748的摩托車,而目前您正在解放路東段華聯(lián)商場(chǎng)右側(cè)騎著這輛摩托車。顧客當(dāng)即暈倒……大數(shù)據(jù)VS傳統(tǒng)數(shù)據(jù)

大數(shù)據(jù)處理流程101010010101010101111010100101010101011101011010100101010101011101011010100101010101011110101001010101010111非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)實(shí)時(shí)流數(shù)據(jù)其它數(shù)據(jù)APITextBigDataStoreandAnalyticsETL0101101010010101010101110101101010010101010101111010100101010101011101011010100101010101011101011010100101010101011110101001010101010111Hadoop生態(tài)圈主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的基本框架6YARN發(fā)展趨勢(shì)HDFS-分布式文件系統(tǒng)

設(shè)計(jì)目標(biāo)錯(cuò)誤檢測(cè)和快速自動(dòng)恢復(fù)硬件故障是常態(tài)而非異常為流式數(shù)據(jù)訪問(wèn)優(yōu)化針對(duì)支持大數(shù)據(jù)集單個(gè)文件大小有數(shù)GB或者TB可提供高聚合帶寬訪問(wèn)

可能夠擴(kuò)展至數(shù)千個(gè)節(jié)點(diǎn)簡(jiǎn)化“一致性”模型一次寫(xiě)入、多次讀,寫(xiě)入過(guò)程可能并發(fā)移動(dòng)“計(jì)算”比移動(dòng)“數(shù)據(jù)”更便宜主要特點(diǎn)使用低成本存儲(chǔ)和服務(wù)器構(gòu)建存放PB級(jí)別的海量數(shù)據(jù)高可擴(kuò)展性,實(shí)際生產(chǎn)環(huán)境擴(kuò)展至4000個(gè)節(jié)點(diǎn)高可靠性和容錯(cuò)性,數(shù)據(jù)自動(dòng)復(fù)制,可自我修復(fù)高帶寬,高并發(fā)訪問(wèn),對(duì)于延遲不敏感數(shù)據(jù)分布與復(fù)制數(shù)據(jù)塊:文件被劃分為固定大小的數(shù)據(jù)塊進(jìn)行存儲(chǔ)數(shù)據(jù)塊缺省為64M,遠(yuǎn)大于一般文件系統(tǒng)數(shù)據(jù)塊大小減少元數(shù)據(jù)的量有利于順序讀寫(xiě)(在磁盤(pán)上順序存放)可靠性:數(shù)據(jù)通過(guò)副本的方式保存在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上默認(rèn)3個(gè)副本副本選擇會(huì)考慮機(jī)架信息以防止整個(gè)機(jī)架同時(shí)掉電系統(tǒng)設(shè)計(jì)優(yōu)化:用單個(gè)管理節(jié)點(diǎn)來(lái)保存文件系統(tǒng)元數(shù)據(jù)和管理/協(xié)調(diào)數(shù)據(jù)緩存:DataNode沒(méi)有數(shù)據(jù)緩存由于文件的訪問(wèn)是掃描式的,不具有局部性訪問(wèn)方式讀、寫(xiě)、文件改名、刪除等文件內(nèi)容不允許覆蓋更新提供一個(gè)特殊的訪問(wèn)接口:追加appendHDFS基本設(shè)計(jì)

HDFS體系結(jié)構(gòu)

中心目錄服務(wù)器(NameNode)管理大量數(shù)據(jù)服務(wù)器(DataNode)NameNode管理元數(shù)據(jù)(文件目錄樹(shù),文件->塊映射,塊->數(shù)據(jù)服務(wù)器映射表,etc.)DataNode負(fù)責(zé)存儲(chǔ)數(shù)據(jù)、以及響應(yīng)數(shù)據(jù)讀寫(xiě)請(qǐng)求客戶端與NameNode交互進(jìn)行文件創(chuàng)建/刪除/尋址等操作,之后直接與DataNodes交互進(jìn)行文件I/OHDFS寫(xiě)文件流程HDFS讀文件流程什么是MapReduce編程模型?

Map(映射):對(duì)一些獨(dú)立元素組成的列表的每一個(gè)元素進(jìn)行指定的操作,可以高度并行。Reduce(化簡(jiǎn)):對(duì)一個(gè)列表的元素進(jìn)行合并。一個(gè)簡(jiǎn)單的MapReduce程序只需要指定map()、reduce()、輸入和輸出,剩下的事由框架幫你搞定。MapReduce計(jì)算框架

為離線數(shù)據(jù)分析而設(shè)計(jì),基本上是個(gè)利用數(shù)據(jù)并行性進(jìn)行分布運(yùn)算而后匯總結(jié)果的計(jì)算框架分析問(wèn)題能夠被并行化,且輸入數(shù)據(jù)集可以被切分一個(gè)Map函數(shù),在第一階段計(jì)算<Key,Value>對(duì)

一個(gè)Reduce函數(shù),在第二階段用于匯總Map函數(shù)的結(jié)果MapReduce運(yùn)行機(jī)制MapReduce原理MapReduce實(shí)例分析主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的基本框架6YARN發(fā)展趨勢(shì)Hadoop

YARN產(chǎn)生背景

直接源于MRv1在幾個(gè)方面的缺陷

擴(kuò)展性受限

單點(diǎn)故障

難以支持MR之外的計(jì)算

多計(jì)算框架各自為戰(zhàn),數(shù)據(jù)共享困難

MR:離線計(jì)算框架

Storm:實(shí)時(shí)計(jì)算框架

Spark:內(nèi)存計(jì)算框架Hadoop

1.0和2.0Hadoop2.0由HDFS、MapReduce和YARN三個(gè)分支構(gòu)成;HDFS:NN

Federation、HA;MapReduce:運(yùn)行在YARN上的MR;

YARN:資源管理系統(tǒng)主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的基本框架6YARN發(fā)展趨勢(shì)Hadoop

YARN基本架構(gòu)Hadoop

YARN各模塊組成ResourceManager

處理客戶端請(qǐng)求啟動(dòng)/監(jiān)控ApplicationMaster監(jiān)控NodeManager

資源分配與調(diào)度NodeManager

單個(gè)節(jié)點(diǎn)上的資源管理處理來(lái)自ResourceManager的命令處理來(lái)自ApplicationMaster的命令A(yù)pplicationMaster

數(shù)據(jù)切分

為應(yīng)用程序申請(qǐng)資源,并分配給內(nèi)部任務(wù)

任務(wù)監(jiān)控與容錯(cuò)Hadoop

YARN運(yùn)行流程分析NodeManagerNodeManagerNodeManagerResourceManagerApplicationMasterClientClientClient①②③④⑤⑤⑤⑥⑥TaskContainerContainerTaskTaskContainerHadoop

YARN容錯(cuò)ResourceManager基于ZooKeeper實(shí)現(xiàn)HA。NodeManager

失敗后,RM將失敗任務(wù)告訴對(duì)應(yīng)的AM;

AM決定如何處理失敗的任務(wù)。ApplicationMaster

失敗后,由RM負(fù)責(zé)重啟;

AM需處理內(nèi)部任務(wù)的容錯(cuò)問(wèn)題;

RMAppMaster會(huì)保存已經(jīng)運(yùn)行完成的Task,重啟后無(wú)需重新運(yùn)行。Hadoop

YARN調(diào)度框架

雙層調(diào)度框架

RM將資源分配給AM

AM將資源進(jìn)一步分配給各個(gè)Task

基于資源預(yù)留的調(diào)度策略

資源不夠時(shí),會(huì)為T(mén)ask預(yù)留,直到資源充足與“all

or

nothing”策略不同(Apache

Mesos)Hadoop

YARN資源調(diào)度器

多類型資源調(diào)度采用DRF算法(論文:“DominantResource

Fairness:

FairAllocation

of

Multiple

Resource

Types”)

目前支持CPU和內(nèi)存兩種資源

提供多種資源調(diào)度器FIFOFair

SchedulerCapacityScheduler

多租戶資源調(diào)度器

支持資源按比例分配

支持層級(jí)隊(duì)列劃分方式

支持資源搶占Hadoop

YARN資源隔離方案

支持內(nèi)存和CPU兩種資源隔離

內(nèi)存是一種“決定生死”的資源

CPU是一種“影響快慢”的資源

內(nèi)存隔離

基于線程監(jiān)控的方案基于Cgroups的方案CPU隔離

默認(rèn)不對(duì)CPU資源進(jìn)行隔離基于Cgroups的方案Hadoop

YARN資源調(diào)度語(yǔ)義

支持的語(yǔ)義

請(qǐng)求某個(gè)特定節(jié)點(diǎn)/機(jī)架上的特定資源量

將某些節(jié)點(diǎn)加入(或移除)黑名單,不再為自己分配這些節(jié)點(diǎn)上的資源

請(qǐng)求歸還某些資源

不支持的語(yǔ)義

請(qǐng)求任意節(jié)點(diǎn)/機(jī)架上的特定資源量

請(qǐng)求一組或幾組符合某種特質(zhì)的資源

超細(xì)粒度資源動(dòng)態(tài)調(diào)整Container資源主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的基本框架6YARN發(fā)展趨勢(shì)應(yīng)用程序的運(yùn)行模型MapinputoutputMapinputReduceoutputStage1inputoutputStage2Stage3Stage4Stage1inputoutputStage2Stage3StageNYARN應(yīng)用程序類型

長(zhǎng)應(yīng)用程序和短應(yīng)用程序

長(zhǎng)應(yīng)用程序Service、HTTP

Server等

短應(yīng)用程序MR

job、Spark

Job等以YARN為核心的生態(tài)系統(tǒng)運(yùn)行在YARN上的計(jì)算框架離線計(jì)算框架:MapReduceDAG計(jì)算框架:Tez流式計(jì)算框架:Storm內(nèi)存計(jì)算框架:Spark圖計(jì)算框架:Giraph、GraphLib離線計(jì)算框架MapReduce

將計(jì)算過(guò)程分為兩個(gè)階段,Map和Reduce

Map階段并行處理輸入數(shù)據(jù)Reduce階段對(duì)Map結(jié)果進(jìn)行匯總Shuffle連接Map和Reduce兩個(gè)階段

MapTask將數(shù)據(jù)寫(xiě)到本地磁盤(pán)Reduce

Task從每個(gè)Map

Task上讀取一份數(shù)據(jù)

僅適合離線批處理

具有很好的容錯(cuò)性和擴(kuò)展性

適合簡(jiǎn)單的批處理任務(wù)

缺點(diǎn)明顯

啟動(dòng)開(kāi)銷大、過(guò)多使用磁盤(pán)導(dǎo)致效率低下等MapReduce

On

YARN2 5MRAppMstrNodeManagerMapTaskNodeManager6 6ReduceTaskClient1Container245MapTask 777ContainerContainerContainerResourceManager3,86ApplicationsManagerResourceSchedulerDAG計(jì)算框架Tez

多個(gè)作業(yè)之間存在數(shù)據(jù)依賴關(guān)系,并形成一個(gè)依賴關(guān)系有

向圖(

Directed

Acyclic

Graph

),該圖的計(jì)算稱為“DAG計(jì)算”Apache

Tez:基于YARN的DAG計(jì)算框架

運(yùn)行在YARN之上,充分利用YARN的資源管理和容錯(cuò)等功能;

提供了豐富的數(shù)據(jù)流(dataflow)API;擴(kuò)展性良好的“Input-Processor-Output”運(yùn)行時(shí)模型;

動(dòng)態(tài)生成物理數(shù)據(jù)流關(guān)系。Phase

1Phase

2Phase

3Phase

4Phase

5MapReduceMapReduceReduceDAG計(jì)算框架TezHDFSMap1Reduce1HDFSHDFSMap2Reduce2HDFSWordCountTop

KHDFSMap1Reduce12HDFSWordCount+Top

KReduce2Job1Job2DAG

JobUsingTezJob1Job2Job4SingleJobUsingTez

On

YARNDAG

AppMstrNodeManager2 5Vertex-ATaskNodeManagerVertex-ATaskClient1Container245Vertex-ATask777ContainerContainerContainerResourceManager3,866ApplicationsManagerResourceSchedulerTez優(yōu)化技術(shù)ApplicationMaster緩沖池作業(yè)提交到AMPoolServer服務(wù)上預(yù)啟動(dòng)若干個(gè)ApplicationMaster,形成一個(gè)ApplicationMaster緩沖池預(yù)先啟動(dòng)ContainerApplicationMaster啟動(dòng)時(shí)可以預(yù)先啟動(dòng)若干個(gè)ContainerContainer重用任務(wù)運(yùn)行完成后,ApplicationMaster不會(huì)馬上注銷它使用的Container,而是將它重新分配給其他未運(yùn)行的任務(wù)Tez應(yīng)用場(chǎng)景

直接編寫(xiě)應(yīng)用程序

Tez提供了一套通用編程接口

適合編寫(xiě)有依賴關(guān)系的作業(yè)優(yōu)化Pig、Hive等引擎下一代Hive:Stinger

好處1:避免查詢語(yǔ)句轉(zhuǎn)換成過(guò)多的MapReduce作業(yè)后產(chǎn)生大量不必要的網(wǎng)絡(luò)和磁盤(pán)IO

好處2:更加智能的任務(wù)處理引擎流式計(jì)算Storm

流式(Streaming)計(jì)算,是指被處理的數(shù)據(jù)

像流水一樣不斷流入系統(tǒng),而系統(tǒng)需要針對(duì)每條數(shù)據(jù)進(jìn)行實(shí)時(shí)處理和計(jì)算,并永不停止(直到用戶顯式殺死進(jìn)程);

傳統(tǒng)做法:由消息隊(duì)列和消息處理者組成的實(shí)時(shí)行實(shí)時(shí)計(jì)算;化性現(xiàn)。處理網(wǎng)絡(luò)進(jìn)缺乏自動(dòng)缺乏健壯伸縮性差Storm出引自:2013中國(guó)大數(shù)據(jù)技術(shù)大會(huì)肖康:“Storm在實(shí)時(shí)網(wǎng)絡(luò)攻擊檢測(cè)和分析的應(yīng)用與改進(jìn)”,PPT:http://share.csdn.net/slides/1230流式計(jì)算框架StormNimbusSupervisorZookeeperExecutorExecutorWorkerExecutorExecutorWorkerSpoutTasks,topology1Blot-ATasks,topology1SupervisorExecutorExecutorWorkerExecutorExecutorWorkerSupervisorExecutorExecutorWorkerExecutorExecutorWorkerSpoutTasks,topology1Blot-BTasks,topology1SpoutTasks,topology2Blot-1Tasks,topology2Blot-CTasks,topology1Blot-BTasks,topology1Blot-2Tasks,topology2Blot-1Tasks,topology2Blot-2Tasks,topology2Blot-2Tasks,topology2流式計(jì)算框架StormTaskTaskTaskTaskTaskTaskTaskTaskTaskSpoutBlot-ABlot-BBlot-CStreamGroupingStreamGroupingTopologyHadoop

MapReduce(MRv1)Storm系統(tǒng)服務(wù)JobTrackerNimbusTaskTrackerSupervisorChildWorker應(yīng)用程序名稱JobTopology編程模型Map/ReduceSpout/BlotShuffleStream

GroupingStorm

On

YARNResourceManagerNodeManagerNodeManagerStormSupervisiorNodeManager②④④④YARN-StormClientYARN-MPIClientYARN-MapReduceeClientStorm

①SubmissionResource

RequestStormApplicationMaster③StormSupervisiorZookeeperNodeManagerMRAppMstrContainerMapTaskContainer……StormClient⑤StormClient⑤NimbusWeb

UI內(nèi)存計(jì)算框架Spark

克服MapReduce在迭代式計(jì)算和交互式計(jì)算方面的不足;引入RDD(Resilient

DistributedDatasets)數(shù)據(jù)表示模型;RDD是集合,一個(gè)有容錯(cuò)機(jī)制,可以被并能夠被緩存到內(nèi)存或磁盤(pán)上行操作的數(shù)據(jù)。引自:

“基于Spark

on

Yarn的淘寶數(shù)據(jù)挖掘平臺(tái)”,PPT:http://vdisk.weibo.com/s/dn9q7A_XuVrf內(nèi)存計(jì)算框架SparkSpark

On

YARNResourceManagerNodeManagerNodeManagerStandaloneExecutorBackenddNodeManagerYARN-SparkClientYARN-MPIClientYARN-MapReducee

ClientSparkSubmissionResource

RequestClusterSchedulerSpark

Application

MasterStandaloneExecutorBackendNodeManagerMR

AppMstrContainerMap

TaskContainer……Web

UISpark生態(tài)系統(tǒng)主要內(nèi)容Hadoop介紹1Hadoop原理2HadoopYARN產(chǎn)生的背景

34HadoopYARN基本架構(gòu)5運(yùn)行在YARN上的基本框架6YARN發(fā)展趨勢(shì)資源管理系統(tǒng)帶來(lái)的好處

提高集群資源利用率

服務(wù)自動(dòng)化部署YARN(資源管理系統(tǒng))HDFS2(分布式存儲(chǔ)系統(tǒng))

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論