hadoop的核心思想是MapReduce,但shuffle又是MapReduce的核心。shuffle的主要工作是從Map結(jié)束到Reduce開(kāi)始之間的過(guò)程。
Hadoop不僅僅是大數(shù)據(jù)技術(shù)的核心重點(diǎn),還是我們面試官面試的時(shí)候經(jīng)常會(huì)問(wèn)道的問(wèn)題,本文將詳細(xì)介紹Hadoop的運(yùn)行原理。
hadoop運(yùn)行原理包括HDFS和Mapreduce兩部分。
1)HDFS自動(dòng)保存多個(gè)副本,移動(dòng)計(jì)算。缺點(diǎn)是小文件存取占用namenode內(nèi)存,寫入只支持追加,不能隨機(jī)修改。
它存儲(chǔ)的邏輯空間稱為block,文件的權(quán)限類似linux。整體架構(gòu)分三種節(jié)點(diǎn),NN,SNN,DN
NN 負(fù)責(zé)讀寫操作保存metadata(Ownership Permission blockinfo)
SNN 負(fù)責(zé)輔助NN合并fsimage和edits,減少nn啟動(dòng)時(shí)間
DN 負(fù)責(zé)存數(shù)據(jù),每個(gè)數(shù)據(jù)(文件)分割成若干block,每個(gè)block默認(rèn)3個(gè)副本。啟動(dòng)后像NN發(fā)送心跳保持聯(lián)系
NN保存的metadata在hdfs啟動(dòng)后加載到計(jì)算機(jī)內(nèi)存,除block位置信息的metadata保存在OS文件系統(tǒng)中的fsimage文件中,對(duì)metadata的操作日志保存在OS文件系統(tǒng)中的edits文件中。block位置信息是hdfs啟動(dòng)后由DN上報(bào)NN再加載到內(nèi)存的。
HDFS的安全模式:直到NN完全加載完metadata之前的這段時(shí)間。期間不能寫入文件,DN檢查各個(gè)block完整性,并修復(fù)。
2)MapReduce
離線計(jì)算框架,過(guò)程分為split map shuffle reduce四個(gè)過(guò)程
架構(gòu)節(jié)點(diǎn)有:Jobtracker TaskTracker
Split將文件分割,傳輸?shù)絤apper,mapper接收KV形式的數(shù)據(jù),經(jīng)過(guò)處理,再傳到shuffle過(guò)程。
Shuffle先進(jìn)行HashPartition或者自定義的partition,會(huì)有數(shù)據(jù)傾斜和reduce的負(fù)載均衡問(wèn)題;再進(jìn)行排序,默認(rèn)按字典排序;為減少mapper輸出數(shù)據(jù),再根據(jù)key進(jìn)行合并,相同key的數(shù)據(jù)value會(huì)被合并;最后分組形成(key,value{})形式的數(shù)據(jù),輸出到下一階段
Reduce輸入的數(shù)據(jù)就變成了,key+迭代器形式的數(shù)據(jù),再進(jìn)行處理。
以上是對(duì)大數(shù)據(jù)技術(shù)面試題的詳細(xì)解析,當(dāng)然了,既然是面試題不可能只有一道,千鋒老師還在積極預(yù)測(cè)備選中,針對(duì)大數(shù)據(jù)技術(shù)的重點(diǎn)內(nèi)容進(jìn)行詳細(xì)講解和階段測(cè)試,讓同學(xué)們真正掌握大數(shù)據(jù)技術(shù),通過(guò)一周一小測(cè),一個(gè)月一大測(cè)的培訓(xùn)原則,給學(xué)生外界的學(xué)習(xí)推力。更多精彩,歡迎持續(xù)關(guān)注~