Samza Application Master

2018-08-22 18:12 更新

YARN 是 Hadoop 的下一代集群管理器。它允許開發(fā)人員在網(wǎng)格上部署和執(zhí)行任意命令。如果您不熟悉 YARN 或 ApplicationMaster(AM)的概念,請閱讀 Hadoop 的 YARN 頁面。

Samza與YARN的集成

Samza 與 YARN 的主要集成是 Samza ApplicationMaster 的形式。這是負(fù)責(zé)管理 YARN 網(wǎng)格中的 Samza 工作的代碼塊。它決定了當(dāng)流處理器發(fā)生故障時該怎么做,哪臺機(jī)器運(yùn)行 Samza 作業(yè)的 容器,等等。

當(dāng) Samza ApplicationMaster 啟動時,它執(zhí)行以下操作:

  1. 創(chuàng)建作業(yè)協(xié)調(diào)器,從協(xié)調(diào)器流引導(dǎo)作業(yè)模型和配置。
  2. 在隨機(jī)端口上啟動 JMX 服務(wù)器。
  3. 實例化一個指標(biāo)注冊表和記者來跟蹤相關(guān)的指標(biāo)。
  4. 用 YARN 的 RM 注冊 AM。
  5. 使用每個輸入流的 PartitionManager 獲取 Samza 作業(yè)的分區(qū)總數(shù)(有關(guān)詳細(xì)信息,請參閱 Streams 頁面)。
  6. 從 Samza 工作的配置中讀取所需容器的總數(shù)。
  7. 將每個分區(qū)分配給容器(在 Samza 的 AM 儀表板中稱為任務(wù)組)。
  8. 為每個容器創(chuàng)建一個 ResourceRequest 到 YARN。如果作業(yè)中啟用了 主機(jī)關(guān)聯(lián),則 AM 使用作業(yè)協(xié)調(diào)器提供的容器位置信息,并在 ResourceRequest 中請求相同的主機(jī)。
  9. 啟動與分配的容器相匹配的 ContainerAllocator 線程,并啟動容器進(jìn)程。
  10. 輪詢 YARN RM 每秒檢查分配和釋放的容器。

從這一點開始,ApplicationMaster 只對來自 RM 的事件做出反應(yīng),并將其委托給 ContainerAllocator 線程。

容錯

每當(dāng)分配一個容器時,AM 將使用 YARN NM 在容器中啟動一個 SamzaContainer(分配給它的適當(dāng)?shù)姆謪^(qū))。如果容器出現(xiàn)非零返回代碼,AM 將請求一個新容器,并重新啟動SamzaContainer。如果 SamzaContainer 失敗太多次太快,則 ApplicationMaster 將使整個 Samza 的作業(yè)以非零返回碼失敗。有關(guān)詳細(xì)信息,請參閱

yarn.container.retry.count 和 yarn.container.retry.window.ms 配置參數(shù)。

當(dāng) AM 從 YARN 接收到重新啟動信號時,它會拋出一個 SamzaException。這將引發(fā)清理和成功關(guān)閉 AM(YARN 不會認(rèn)為 AM 失?。?。

如果 AM 本身失敗,則 YARN 將處理重新啟動 AM。當(dāng) AM 重新啟動時,所有正在運(yùn)行的容器將被殺死,AM 將從頭開始。將執(zhí)行相同的操作列表,如上所示。AM 將為其 SamzaContainers 請求新的容器,并且像剛剛開始的那樣首先進(jìn)行。YARN 具有在 yarn-site.xml 中定義的 yarn.resourcemanager.am.max-retries 配置參數(shù)。此配置默認(rèn)為1,這意味著默認(rèn)情況下,單個 AM 故障將導(dǎo)致Samza作業(yè)停止運(yùn)行。

安全

即使在安全模式下使用 YARN,Samza 儀表板的 HTTP 訪問目前仍未保護(hù)。這意味著訪問 YARN 網(wǎng)格的用戶可以對 Samza ApplicationMaster 的 HTTP 服務(wù)器進(jìn)行端口掃描,并在瀏覽器中打開儀表板來查看其內(nèi)容。任何人都可以看到敏感的配置,這樣就要小心了。有計劃使用 Hadoop的安全功能(SPENAGO)確保Samza的ApplicationMaster 。

有關(guān)詳細(xì)信息,請參閱Samza的 安全 頁面。

隔離   >>

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號