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 进行内存资源隔离,而是选择了线程监控的方式。
需要解释一下:为什么应用程序的内存会超过预先定义的上限值? J