mapreduce數(shù)據(jù)流程優(yōu)化案例 mapreduce的計(jì)算框架為哪三個(gè)部分?
mapreduce的計(jì)算框架為哪三個(gè)部分?MapReduce乾坤二卦四個(gè)組成部分,各為Client,JobTracker,TaskTracker,Task客戶端每一個(gè)Job都會(huì)在用戶端通過Client
mapreduce的計(jì)算框架為哪三個(gè)部分?
MapReduce乾坤二卦四個(gè)組成部分,各為Client,JobTracker,TaskTracker,Task
客戶端
每一個(gè)Job都會(huì)在用戶端通過Client類將應(yīng)用程序以及配置信息Configuration發(fā)到郵箱成Jar文件上傳到HDFS,并把路徑并提交到JobTracker的master服務(wù),接著由master創(chuàng)建戰(zhàn)隊(duì)每一個(gè)Task(即MapTask和ReduceTask),將它們分發(fā)到各個(gè)TaskTracker服務(wù)中去想執(zhí)行。
JobTracker專門負(fù)責(zé)資源監(jiān)控和作業(yè)調(diào)度。JobTracker監(jiān)控所有的TaskTracker與Job的是健康狀態(tài),否則的話突然發(fā)現(xiàn)失敗,就將相應(yīng)的任務(wù)撤回到其他節(jié)點(diǎn);同樣的JobTracker會(huì)跟蹤任務(wù)的執(zhí)行進(jìn)度,資源使用量等信息,并將這些信息告訴任務(wù)調(diào)度器,而指揮調(diào)動(dòng)器會(huì)在資源會(huì)出現(xiàn)空閑時(shí),你選擇最合適的任務(wù)不使用這些資源。在Hadoop中,任務(wù)調(diào)度器是三個(gè)可的模塊,應(yīng)用于可以根據(jù)自己的需要設(shè)計(jì)你所選的調(diào)度器。
3TaskTracker
TaskTracker是啟動(dòng)在多個(gè)節(jié)點(diǎn)上的slave服務(wù)。TaskTracker主動(dòng)與JobTracker通信(與DataNode和NameNode相象,心跳來利用),會(huì)周期性地將本節(jié)點(diǎn)上資源可以使用情況和任務(wù)的運(yùn)行進(jìn)度匯報(bào)情況給JobTracker,同時(shí)不能執(zhí)行JobTracker郵箱里進(jìn)來的命令并想執(zhí)行或則的操作(如起動(dòng)新任務(wù),殺了任務(wù)等)。TaskTracker在用#34slot#34等量劃分本節(jié)點(diǎn)上的資源量。#34slot#34代表可以計(jì)算資源(cpu,內(nèi)存等)。另一個(gè)Task某些到一個(gè)slot之后才有機(jī)會(huì)正常運(yùn)行,而Hadoop調(diào)度器的作用應(yīng)該是將各個(gè)TaskTracker上的多余的時(shí)間slot分區(qū)分配給Task使用。slot可分MapSlot和ReduceSlot兩種,各需要提供MapTask和ReduceTask在用。TaskTracker是從slot數(shù)目(可配置參數(shù))限定Task的并發(fā)度。
4Task:
Task統(tǒng)稱MapTask和ReduceTask兩種,均由TaskTracker啟動(dòng)后。HDFS以固定不動(dòng)大小的block為基本都單位存儲(chǔ)數(shù)據(jù),而對(duì)此MapReduce而言,其全面處理單位是split。split是一個(gè)邏輯概念,它只乾坤二卦一些元數(shù)據(jù)信息,.例如數(shù)據(jù)起始位置、數(shù)據(jù)長度、數(shù)據(jù)所在節(jié)點(diǎn)等。它的劃分方法幾乎有用戶自己判斷。但需要注意什么,explode的多少判斷了MapTask的數(shù)目,只不過每一個(gè)split只會(huì)送到一個(gè)MapTask處理。
mapreduce的工作原理簡答題?
1.有一個(gè)待全面處理的大數(shù)據(jù),被劃作成大小是一樣的的數(shù)據(jù)庫(如64MB),這些與此或則的用戶作業(yè)程序。
2.系統(tǒng)中有一個(gè)共同負(fù)責(zé)調(diào)度指揮的主節(jié)點(diǎn)(Master),包括數(shù)據(jù)Map和Reduce工作節(jié)點(diǎn)(Worker).
3.用戶作業(yè)再提交個(gè)主節(jié)點(diǎn)。
4.主節(jié)點(diǎn)為作業(yè)程序這里有和配備用些的Map節(jié)點(diǎn),并將程序傳送給map節(jié)點(diǎn)。
5.主節(jié)點(diǎn)也為作業(yè)程序去尋找和配備后用的Reduce節(jié)點(diǎn),并將程序傳送給Reduce節(jié)點(diǎn)。
6.主節(jié)點(diǎn)啟動(dòng)每一個(gè)Map節(jié)點(diǎn)執(zhí)行程序,每個(gè)Map節(jié)點(diǎn)盡肯定無法讀取本地或本機(jī)架的數(shù)據(jù)并且換算。(實(shí)現(xiàn)方法代碼向數(shù)據(jù)進(jìn)發(fā),減少集群中數(shù)據(jù)的通信量)。
7.每個(gè)Map節(jié)點(diǎn)去處理讀取數(shù)據(jù)的數(shù)據(jù)塊,并做一些數(shù)據(jù)整理工作(combining,sorting等)并將數(shù)據(jù)存儲(chǔ)在本地機(jī)器上;同樣的通知到主節(jié)點(diǎn)計(jì)算委托任務(wù)并告知主節(jié)點(diǎn)中間結(jié)果數(shù)據(jù)的存儲(chǔ)位置。
8.主節(jié)點(diǎn)等所有Map節(jié)點(diǎn)計(jì)算能完成后,正在啟動(dòng)時(shí)Reduce節(jié)點(diǎn)運(yùn)行;Reduce節(jié)點(diǎn)從主節(jié)點(diǎn)所完全掌握的中間結(jié)果數(shù)據(jù)位置信息,遠(yuǎn)程讀取這些數(shù)據(jù)。
節(jié)點(diǎn)算出結(jié)果匯總輸出到一個(gè)結(jié)果文件,即完成整個(gè)處理結(jié)果。