1. 程式人生 > >hdfs 檔案提交與mr作業提交流程分析

hdfs 檔案提交與mr作業提交流程分析


看了不少東西,想把他們總結出來,若有錯誤還望不吝賜教

在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