Samza YARN執(zhí)行隔離

2018-08-22 18:15 更新

在共享的分布式環(huán)境中運行 Samza 作業(yè)時,流處理器可能會對對方的性能產(chǎn)生影響。使用100% 計算機 CPU 的流處理器將減慢計算機上的所有其他流處理器的速度。

YARN 的一個職責是管理資源,使這種情況不會發(fā)生。每個 YARN 的節(jié)點管理器(NM)都有一大堆“資源”專用于它。如果 YARN 資源管理器(RM)有足夠的資源來滿足容器的需求,則只允許在 NM 上分配容器。

YARN 目前支持內(nèi)存和 CPU 的資源管理。

內(nèi)存

YARN 將自動對其執(zhí)行的所有容器執(zhí)行內(nèi)存限制。所有容器必須在創(chuàng)建時定義最大內(nèi)存大小。如果與單個 YARN 容器相關聯(lián)的進程的所有內(nèi)存使用量的總和超過此最大值,則 YARN 將終止該容器。

Samza 使用 yarn.container.memory.mb 和 yarn.am.container.memory.mb 配置參數(shù)支持內(nèi)存限制。請記住,這只是 YARN 將允許 SamzaContainer 或 ApplicationMaster 擁有的內(nèi)存量。當使用 Java(默認為 -Xmx160M)時,仍然需要使用 task.opts 來適當?shù)嘏渲枚言O置。有關詳細信息,請參閱配置打包頁面。

CPU

YARN 具有虛擬核心的概念。每個 NM 被分配了總數(shù)量的虛擬內(nèi)核(默認為32)。當發(fā)出容器請求時,它必須指定需要多少虛擬內(nèi)核。YARN RM 將僅將容器分配給具有足夠虛擬內(nèi)核以滿足請求的 NM。

CGroups

與內(nèi)存不同,YARN 可以強制執(zhí)行(通過查看 / proc文件夾),YARN 無法強制執(zhí)行 CPU 隔離,因為這必須在 Linux 內(nèi)核級完成。YARN 的一個有趣的新功能是支持 Linux CGroups。CGroups 是一種控制 Linux 內(nèi)核級進程利用率的方法。

如果 YARN 設置為使用 CGroups,則 YARN 將保證容器至少獲得所需的 CPU 數(shù)量。目前,YARN 將為您提供更多的 CPU,如果可用。有關執(zhí)行“最多”CPU使用情況的詳細信息,請參閱 YARN-810。

有關使用 CGroup 設置 YARN 的詳細信息,請參閱此博文。

主機關聯(lián)和 YARN   >>

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號