Hadoop 05_MapReduce1.0
MapReduce1.0
為什么叫MapReduce?
MR原語:map + reduce
?
輸入(格式化k,v)數(shù)據(jù)集àmap映射成一個中間數(shù)據(jù)集(k,v)àreduce (sql)
“相同”的key為一組,調(diào)用一次reduce方法,方法內(nèi)迭代這一組數(shù)據(jù)進(jìn)行計算 (類似的sql)
?
排序
比較
遍歷
計算
各種維度花銷,音樂, 其他
?
MapReduce:MapTask & ReduceTask
拿單詞統(tǒng)計為例:(后續(xù)我會單獨拿出來說明:)
?
?
?
block > split
1:1
N:1
1:N
split > map
1:1
map > reduce
N:1
N:N
1:1
1:N
group(key)>partition
1:1
N:1
N:N
1:N? ?>違背了原語
partition > outputfile
劃開分割 > 輸出文件
?
Shuffler<洗牌>:框架內(nèi)部實現(xiàn)機制
分布式計算節(jié)點數(shù)據(jù)流轉(zhuǎn):連接MapTask與ReduceTask
?
終極理解:
理解:
Map:
讀懂?dāng)?shù)據(jù)
映射為KV模型
并行分布式
計算向數(shù)據(jù)移動
Reduce:
數(shù)據(jù)全量/分量加工(partition/group)
Reduce中可以包含不同的key
相同的Key匯聚到一個Reduce中
相同的Key調(diào)用一次reduce方法
排序?qū)崿F(xiàn)key的匯聚
K,V使用自定義數(shù)據(jù)類型
作為參數(shù)傳遞,節(jié)省開發(fā)成本,提高程序自由度
Writable序列化:使能分布式程序數(shù)據(jù)交互
Comparable比較器:實現(xiàn)具體排序(字典序,數(shù)值序等)
?
1.0運行架構(gòu):體現(xiàn)計算向數(shù)據(jù)移動
?
計算框架Mapper
?
Map:“在本地數(shù)據(jù)上運行此計算”作業(yè)跟蹤器將Java代碼交付給帶有本地數(shù)據(jù)的節(jié)點
?
計算框架Reducer
?
Reduce:“跨Map結(jié)果運行此計算”。Map任務(wù)通過網(wǎng)絡(luò)將輸出數(shù)據(jù)發(fā)送到Reduce,減少從HDFS寫入和讀取的任務(wù)數(shù)據(jù)輸出
?
MRv1角色:
JobTracker
核心,主,單點
調(diào)度所有的作業(yè)
監(jiān)控整個集群的資源負(fù)載
TaskTracker
從,自身節(jié)點資源管理
和JobTracker心跳,匯報資源,獲取Task
Client
作業(yè)為單位
規(guī)劃作業(yè)計算分布
提交作業(yè)資源到HDFS
最終提交作業(yè)到JobTracker
弊端:
JobTracker:負(fù)載過重,單點故障
資源管理與計算調(diào)度強耦合,其他計算框架需要重復(fù)實現(xiàn)資源管理
不同框架對資源不能全局管理
總結(jié)
以上是生活随笔為你收集整理的Hadoop 05_MapReduce1.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop 04_Hadoop2.0
- 下一篇: Hadoop 06_MapReduce2