MapReduce簡寫MR
本文主要概述了hadoop1.x與hadoop2.x區(qū)別
??HDFS區(qū)別 federation
??MR區(qū)別 yarn
MR的shuffle過程
hadoop1.x
hadoop.2.x
split 128m
block 128m
因?yàn)槿绻鹲plit 256m肝集,就占了2個(gè)block
一個(gè)split 對應(yīng) 一個(gè)task 民假, 那這個(gè)task 不管放在哪個(gè)datanode礁遵,都需要另一個(gè)block網(wǎng)絡(luò)傳輸肥惭,應(yīng)該做到本地化
荣挨;
block是嚴(yán)格按大小分而芥,128m
但split 不是罕容,若一個(gè)數(shù)據(jù)被切斷胳岂,影響測試結(jié)果萌抵,這就是split 的意義之一
map一條一條處理完寫入buffer(默認(rèn)100m)找御,達(dá)到閾值0.8元镀,就益寫,益寫前分區(qū)霎桅,排序等栖疑,
spark vs mapreduce
spark 內(nèi)存讀寫,DAG
mapreduce 磁盤
RDD 彈性分布式數(shù)據(jù)集
第4點(diǎn):partitioner分區(qū)器作用在kv格式的RDDs
第5點(diǎn):數(shù)據(jù)本地化滔驶,計(jì)算的task-由partition位置決定在哪個(gè)節(jié)點(diǎn)執(zhí)行
說明遇革,sc.textFile(),這是mr的方法
spark沒有讀取hdfs的文件的方法揭糕,采用mr的萝快,mr讀的時(shí)候會split,
所以partition 與 split 也是一對一
Driver分發(fā)task至work節(jié)點(diǎn)執(zhí)行著角,
分發(fā)策略:本地化
Drvier會有大量網(wǎng)絡(luò)通信;
1揪漩、 分發(fā)任務(wù)
2、 收集task計(jì)算結(jié)果
3雇寇、 收集task執(zhí)行情況
OOM風(fēng)險(xiǎn)
collect 算子會將worker上計(jì)算結(jié)果回收到Driver端氢拥,慎用
偽代碼是一個(gè)application,
代碼中有多少個(gè)action算子锨侯,就有多少個(gè)job嫩海,count,2個(gè)
transformation
map(f)算子囚痴, 一對一
flatmap(f) 算子叁怪, 一對多
sample(float)算子, 隨機(jī)抽取
groupbykey(k,v)算子深滚,按k分組奕谭,有shuffle,就有分區(qū)器痴荐,分區(qū)器必須作用在k血柳,v格式的RDD
reducebykey(f) 自動調(diào)用groupbykey(),f作用在seq(v)上
union()
join() k相同生兆,
mapvalues(f) 只遍歷v
sort(c) 傳排序器
partitionby(p)傳排序器
action
count()算子
collect()算子
reduce(f)算子
lookup(k)算子 返回seq(v)
save(str)算子