Hadoop Yarn 的资源隔离是指为运行着不同任务的 “Container” 提供可独立使用的计算资源,以避免它们之间相互干扰。目前支持两种类型的资源隔离: CPU 和内存,对于这两种类型的资源, Yarn 使用了不同的资源隔离方案。
注:Hadoop Yarn内存资源隔离实现原理-基于线程监控的内存隔离方案,本文以 hadoop-2.5.0-cdh5.3.2 为例进行说明。
hadoop 的资源隔离是指为运行着不同任务的 “Container” 提供可独立使用的计算资源,以避免它们之间相互干扰。目前支持两种类型的资源隔离: CPU 和内存,对于这两种类型的资源, Yarn 使用了不同的资源隔离方案。
对于 CPU 而言,它是一种 “ 弹性 ” 资源,使用量大小不会直接影响到应用程序的存亡,因此 CPU 的资源隔离方案采用了 Linux Kernel 提供的轻量级资源隔离技术Cgroups ;对于内存而言,它是一种 “ 限制性 ” 资源,使用量大小直接决定着应用程序的存亡, Cgroups 会严格限制应用程序的内存使用上限,一旦使用量超过预先定义的上限值,就会将该应用程序 “ 杀死 ” ,因此无法使用 Cgroups 进行内存资源隔离,而是选择了线程监控的方式。

Hadoop YARN通过资源隔离确保不同任务的Container独立使用计算资源,避免相互干扰。内存隔离采用线程监控,因内存超限可能导致应用被杀死。本文以hadoop-2.5.0-cdh5.3.2为例,解释为何应用内存会超过预设上限及Java程序为何需要内存隔离,并详细阐述内存隔离的配置参数和实现原理。
最低0.47元/天 解锁文章
550

被折叠的 条评论
为什么被折叠?



