codecamp

Samza YARN执行隔离

在共享的分布式环境中运行 Samza 作业时,流处理器可能会对对方的性能产生影响。使用100% 计算机 CPU 的流处理器将减慢计算机上的所有其他流处理器的速度。

YARN 的一个职责是管理资源,使这种情况不会发生。每个 YARN 的节点管理器(NM)都有一大堆“资源”专用于它。如果 YARN 资源管理器(RM)有足够的资源来满足容器的需求,则只允许在 NM 上分配容器。

YARN 目前支持内存和 CPU 的资源管理。

内存

YARN 将自动对其执行的所有容器执行内存限制。所有容器必须在创建时定义最大内存大小。如果与单个 YARN 容器相关联的进程的所有内存使用量的总和超过此最大值,则 YARN 将终止该容器。

Samza 使用 yarn.container.memory.mb 和 yarn.am.container.memory.mb 配置参数支持内存限制。请记住,这只是 YARN 将允许 SamzaContainer 或 ApplicationMaster 拥有的内存量。当使用 Java(默认为 -Xmx160M)时,仍然需要使用 task.opts 来适当地配置堆设置。有关详细信息,请参阅配置打包页面。

CPU

YARN 具有虚拟核心的概念。每个 NM 被分配了总数量的虚拟内核(默认为32)。当发出容器请求时,它必须指定需要多少虚拟内核。YARN RM 将仅将容器分配给具有足够虚拟内核以满足请求的 NM。

CGroups

与内存不同,YARN 可以强制执行(通过查看 / proc文件夹),YARN 无法强制执行 CPU 隔离,因为这必须在 Linux 内核级完成。YARN 的一个有趣的新功能是支持 Linux CGroups。CGroups 是一种控制 Linux 内核级进程利用率的方法。

如果 YARN 设置为使用 CGroups,则 YARN 将保证容器至少获得所需的 CPU 数量。目前,YARN 将为您提供更多的 CPU,如果可用。有关执行“最多”CPU使用情况的详细信息,请参阅 YARN-810。

有关使用 CGroup 设置 YARN 的详细信息,请参阅此博文。

主机关联和 YARN   >>

Samza Application Master
Samza 主机关联和 YARN
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Samza API

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }