Yarn 的Application 的依賴檔案和包是如何上傳下載和使用的

weixin_34138377發表於2018-08-21

簡述下背景

大家經常關注的點就是一個Application是如何提交到Yarn上,Application的一個執行流程,但是估計對Application的依賴檔案是什麼時間,如何上傳到到對應的nodemanager上,並且被被container如何載入和使用估計不清楚,這兒簡單介紹下。

在YARN中,分散式快取是一種分散式檔案與快取機制,類似於MRv1中的DistributedCache,其主要作用是將使用者應用程式執行所需要的外部檔案資源自動透明地下載並快取到各個節點上,從而省去了使用者手動部署這些檔案的麻煩。

Yarn分散式快取工作流程如下:

  • 1、 客戶端將應用程式所需的檔案資源(外部字典,JAR包,二進位制檔案等)提交到HDFS上
  • 2、客戶端將應用程式提交到ResourceManager上
  • 3、 ResourceManager和某個NodeManager通訊,啟動應用程式的ApplicationMaster,NodeManagers收到命令後,首先從HDFS上下載檔案(快取),然後啟動ApplcationMaster。
  • 4、ApplcationMaster和ResourceManager通訊,請求和獲取計算資源。
  • 5、ApplciationMaster收到新分配的計算資源後,與對應的NodeManager通訊,以啟動任務。
  • 6、如果該應用程式第一次在該節點上啟動任務,則NodeManager首先從HDFS上下載檔案快取到本地,然後啟動任務。
  • 7、NodeManager後續收到啟動任務的請求後,如果檔案已經在本地快取,則會直接直接執行任務,否則等待檔案快取完成後才會啟動。

相關文章