gpt4 book ai didi

linux - Hadoop:将 cgroups 用于 TaskTracker 任务

转载 作者:可可西里 更新时间:2023-11-01 14:59:25 26 4
gpt4 key购买 nike

是否可以配置 cgroups 或 Hadoop,使 TaskTracker 生成的每个进程都分配给特定的 cgroup?

我想使用 cgroups 强制执行内存限制。可以将 cgroup 分配给 TaskTracker,但如果作业造成严重破坏,TaskTracker 也可能会被 oom-killer 杀死,因为它们在同一组中。

假设我的机器有 8GB 内存。我想为 DataNode 和系统实用程序保留 1.5GB,让 Hadoop TaskTracker 使用 6.5GB 内存。现在,我在生成 4 个映射器和 2 个缩减器(理论上每个都可以使用 1GB RAM)时使用流式 API 开始一个作业,它占用的内存比允许的多。现在 cgroup 内存限制将被命中并且 oom-killer 开始杀死一个工作。我宁愿为每个 Map 和 Reduce 任务使用一个 cgroup,例如限制为 1GB 内存的 cgroup

这是一个真实的还是理论上的问题? oom-killer 真的会杀死 Hadoop TaskTracker 还是他会首先开始杀死 fork 的进程?如果后者在大多数情况下是正确的,我的想法可能会奏效。如果不是——一个糟糕的工作仍然会杀死所有集群机器上的 TaskTracker 并需要手动重启。

使用 cgroups 时还有什么要注意的吗?

最佳答案

您是否查看了允许为 tasktracker 的子进程(任务)设置和最大化堆分配的 hadoop 参数,并且不要忘记查看 jvm 重用的可能性。

有用的链接:

http://allthingshadoop.com/2010/04/28/map-reduce-tips-tricks-your-first-real-cluster/

http://developer.yahoo.com/hadoop/tutorial/module7.html

How to avoid OutOfMemoryException when running Hadoop?

http://www.quora.com/Why-does-Hadoop-use-one-JVM-per-task-block

关于linux - Hadoop:将 cgroups 用于 TaskTracker 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com