首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop:将cgroup用于TaskTracker任务

Hadoop:将cgroup用于TaskTracker任务
EN

Stack Overflow用户
提问于 2013-02-27 10:17:48
回答 2查看 586关注 0票数 2

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

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

假设我在一台机器上有8 8GB内存。我想为DataNode和系统实用程序保留1.5 of,让Hadoop TaskTracker使用6.5 of的内存。现在,我在spawns、4个映射器和2个reducers (理论上每个都可以使用1 1GB )上使用流API启动一个作业,它们消耗的内存比允许的要多。现在将达到cgroup内存限制,oom杀手开始杀死一个作业。我宁愿为每个Map和Reduce任务使用一个cgroup,例如一个限制为1 1GB内存的cgroup

这是一个真实的问题还是更多的理论问题?oom-killer会真的杀死Hadoop的TaskTracker吗?还是他会先杀死派生的进程?如果后者在大多数情况下是正确的,那么我的想法可能会行得通。如果不是这样-一个糟糕的作业仍然会杀死所有集群机器上的TaskTracker,并且需要手动重启。

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

EN

回答 2

Stack Overflow用户

发布于 2013-03-05 00:21:52

您是否看过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

票数 0
EN

Stack Overflow用户

发布于 2013-03-05 15:36:10

如果您有很多学生和员工访问Hadoop集群以提交作业,那么您可以查看Hadoop中的job Scheduling。

以下是您可能感兴趣的一些类型的要点-

公平调度器:公平份额调度器背后的核心思想是将资源分配给作业,这样平均而言,随着时间的推移,每个作业都会获得相等的可用资源份额。为了确保公平,每个用户都被分配到一个池中。这样,如果一个用户提交了多个作业,他或她可以获得与所有其他用户相同的集群资源份额(独立于他们提交的工作)。

容量调度器:在容量调度中,创建了几个队列,每个队列都有可配置数量的映射和缩减插槽。还为每个队列分配了一个保证容量(其中集群的总容量是每个队列的容量之和)。容量调度是为大型集群定义的,这些集群可能具有多个独立的使用者和目标应用程序。

由于时间不够,我不知羞耻地从这里复制了上面提到的内容,以下是链接。http://www.ibm.com/developerworks/library/os-hadoop-scheduling/index.html

要配置Hadoop,请使用以下链接:http://hadoop.apache.org/docs/r1.1.1/fair_scheduler.html#Installation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15103046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档