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

簡述下背景

大家經常關注的點就是一個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后續收到啟動任務的請求后,如果文件已經在本地緩存,則會直接直接執行任務,否則等待文件緩存完成后才會啟動。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容