hadoop細節 -> 持續更新

Hdfs:

hdfs寫流程:

 

 

  1. 客戶端經過DistributedFileSystem請求namenode上傳文件
  2. Namenode進行檢查,好比父路徑   文件自己,是否容許上傳
  3. Namenode相應信息給client  是否容許上傳
  4. 請求上傳第一個block塊
  5. Namenode根據元數據信息判斷,須要在哪些datanode上上傳,返回datanode列表,根據複本數返回datanode節點數。
  6. 客戶端經過FSDataOutputStream創建通道,客戶端先與datanode1創建通道,data1與data2,data2與data3創建通道
  7. 響應通道的應答消息
  8. 上傳block塊,在客戶端會造成數據隊列(block以pachage爲單位進行劃分),以pakage爲單位(默認大小爲64k)進行上傳
  9. 客戶端先傳給data1,先存儲在data1的內存中,而後再寫入磁盤。Data1將package傳給data2  ,data2傳給data3
  10. 10.響應pachage應答消息,響應給客戶端,從數據隊列中刪除package

                    block上傳完成當上傳其餘的block塊的時候  從4步開始執行  node

  11.最後客戶端通知namenode上傳完成了緩存

hdfs 讀流程:

  

 

  1. 客戶端經過DistributedFileSystem與namenode進行通訊,請求下載文件
  2. Namenode經過查找本身的元數據信息,得到文件對應的block塊及其位置信息,響應給客戶端
  3. 客戶端經過網絡拓撲,選擇一臺datanode(就近原則),進行請求讀取,請求讀取的時候經過FSDataInputStream
  4. 客戶端以package爲單位進行讀取,先寫入到客戶單的本地的緩存中(內存中),而後同步到磁盤。

 

Yarn:

    resourcemanager的基本職能歸納:服務器

  • 與客戶端進行交互,處理來自於客戶端的請求,如查詢應用的運行狀況
  • 啓動和管理各個應用的ApplicationMaster,而且爲ApplicationMaster申請第一個Container用於啓動和運行失敗時將它從新啓動
  • 管理NodeManager,接受來自NodeManager的資源和節點健康狀況彙報,並向NodeManager下達管理資源命令,例如kill掉某個container
  • 資源管理和調度,接受來自ApplicationMaster的資源申請,而且爲其進行分配。這個是他的最重要的只能。
MapReduce1 Yarn
Jobtrack 資源管理器(Resourcemanager)、applicationMaster、時間軸服務器
Tasktrack   節點管理器(nodemanager)
slot 容器(container)

 

 

MapReduce:

相關文章
相關標籤/搜索