回覆列表
  • 1 # 烏雲未放晴

    主要編寫步驟

    (1) 涉及到的RPC協議

    通常而言,編寫一個YARN Appcalition涉及到3個RPC協議,分別為:

    1) ClientRMProtocol(Client<–>ResourceManager)

    Client透過該協議將應用程式提交到ResourceManager上、查詢應用程式的執行狀態或者殺死應用程式等。

    2) AMRMProtocol(ApplicationMaster<–>ResourceManager)

    ApplicationMaster使用該協議向ResourceManager註冊、申請資源以執行自己的各個任務。

    3) ContainerManager(ApplicationMaster<–> NodeManager)

    ApplicationMaster使用該協議要求NodeManager啟動/撤銷Container,或者獲取各個container的執行狀態。

    (2)客戶端編寫流程

    步驟1 Client透過RPC函式ClientRMProtocol#getNewApplication從ResourceManager中獲取唯一的application ID

    步驟2 Client透過RPC函式ClientRMProtocol#submitApplication將ApplicationMaster提交到ResourceManager上。

    (3)ApplicationMaster編寫流程

    步驟1 ApplicationMaster透過RPC函式AMRMProtocol#registerApplicationMaster向ResourceManager註冊。

    步驟2 ApplicationMaster透過RPC函式AMRMProtocol#allocate向ResourceManager申請資源(以Container形式表示)。

    步驟3 ApplicationMaster透過RPC函式ContainerManager#startContainer要求對應的NodeManager啟動Container。

    ApplicationMaster重複步驟2~3,直到所有任務執行成功。

    另外,在應用程式執行過程中,使用者可使用ClientRMProtocol#getApplicationReport 查詢應用程式執行狀態,也可以使用ClientRMProtocol#forceKillApplication將應用程式殺死。

  • 中秋節和大豐收的關聯?
  • 女孩子就一定要結婚生孩子這輩子才會完整嗎?