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