hdfs 檔案提交與mr作業提交流程分析
阿新 • • 發佈:2019-01-07
看了不少東西,想把他們總結出來,若有錯誤還望不吝賜教
在hdfs架構中可以吧Client認為是送貨人,nn是倉庫管理員,dn是一個個倉庫。當客戶端要送貨(檔案)的時候,進行如下步驟
1.送貨員通過rpc通訊告知倉庫管理員(nn)說我這裡有貨物,請告訴我放在哪裡啊
2.倉庫管理員通過查詢所維護的倉庫資訊查出哪個倉庫有空餘空間,將查詢結構反饋給送貨員
3.送貨員將貨物放入管理員所說的倉庫即可
·4.為了保證安全性,倉庫會對貨物進行復制冗餘儲存多份(在其他倉庫中)
5.在倉庫裝載貨物的同時會將自身剩餘的空間彙報給倉庫管理員,管理員對自己的賬本做出更新
6.儲存成功後倉庫會回傳告知送貨員儲存成功
在以上過程中有幾點需要注意:
1.檔案是按一塊一塊儲存的,客戶端申請空間也是一塊一塊的申請,這是為了防止因為dn出現狀況能夠快速恢復
2.dn在收到資料後會與nn進行通訊,當發現nn中配置資訊顯示要儲存兩份副本時,變水平復制檔案知道滿足nn要求
3.最好不要儲存過多小檔案原因是nn上會在記憶體與磁碟空間中個儲存一份資料的元資訊,如果小檔案過多,nn的記憶體將成為瓶頸,拖慢速度
4.blk大小為128m,但是小檔案所佔空間仍是其真實大小
任務提交過程為:
1.client與rm進行rpc通訊
2.rm返回給客戶端jobid與jar包存放路徑資訊傳給client
3.client對jobid與路徑進行拼接後將jar包和路徑傳遞給hdfs,預設在hdfs中儲存10份
4.client將job資訊資訊再傳給rm,rm將資訊放入排程器中
5.nm開始領取任務,領jar包, 然後啟動yarnchild(放著mapper例項與reducer例項)進行計算
6.將結果寫會hdfs