我试图理解Hadoop中的cgroup,但无法完全理解它。它们与根据配置的规则为每个队列分配资源的调度程序有何不同?我的理解是,调度程序似乎更多地与内存相关,而组与CPU有关。我的理解是否正确?我确定我在这里遗漏了一些东西。
请任何专家指导。
由于
答案 0 :(得分:3)
在Hadoop 2(YARN)中,调度程序负责为执行任务分配容器。为每个容器分配固定内存以在执行期间使用。当任务尝试使用的内存超过分配时,NodeManager
将终止任务。
但是,如果任务正在使用节点中的所有可用CPU,该怎么办?在这种情况下,其他人将无法取得任何进展。因此,要控制容器的CPU使用率,可以为任务配置CGroup
。这是linux内核提供的功能。
您可以在以下资源上阅读更多信息:
Managing Multiple Resources in Hadoop 2 with YARN
Using YARN with Cgroups