hadoop - hadoop公平调度程序和容量调度程序均未按预期进行调度

标签 hadoop configuration scheduler cloudera yarn

我使用CDH5.1.0(hadoop 2.3.0)。 2个名称节点(2个32GB RAM,2个内核)和3个数据节点(3个16GB RAM,2个内核)

我正在从默认队列中的单个用户计划mapreduce作业(没有其他用户,也没有配置其他队列)。

使用容量调度程序时,会发生以下情况:我能够提交多个作业,但是只有两个作业正在并行执行(状态为“运行中”)。

使用公平调度程序时,会发生以下情况:我正在提交多个作业,并且集群/调度程序将4个作业设置为“正在运行”状态。这些工作将永远保持5%的进度。如果单个作业被杀死,新作业将再次以5%的状态设置为“运行中”,并且没有进一步的进展。只有在少于4个作业且没有其他作业提交到队列之后,作业才开始执行。

我已经多次重新配置了集群,但是在使用容量计划程序时却无法增加正在运行的作业的数量,或者在使用公平的计划程序时却无法避免作业的中断

我的问题是-如何配置群集/ yarn /调度程序/动态和静态资源池以使调度工作?

以下是一些配置参数:

yarn.scheduler.minimum-allocation-mb = 2GB
yarn.scheduler.maximum-allocation-mb = 12GB
yarn.scheduler.minimum-allocation-vcores = 1
yarn.scheduler.maximum-allocation-vcores = 2
yarn.nodemanager.resource.memory-mb = 12GB
yarn.nodemanager.resource.cpu-vcores  = 2
mapreduce.map.memory.mb = 12GB
mapreduce.reduce.memory.mb = 12GB
mapreduce.map.java.opts.max.heap = 9.6GB
mapreduce.reduce.java.opts.max.heap = 9.6GB
yarn.app.mapreduce.am.resource.mb = 12GB
ApplicationMaster Java Maximum Heap Size = 788MB
mapreduce.task.io.sort.mb = 1GB

我为静态和动态资源池保留了默认设置(cloudera)(例如,“正在运行的应用程序的最大设置”为空)

最佳答案

不是解决方案,但可能的解决方法

在某个时候,我们与MapR咨询公司的Christian Neundorf讨论了这个问题,他声称FairScheduler中存在死锁错误(不是CDH特定,而是标准hadoop!)。

他提出了这种解决方案,但是我不记得我们是否尝试过。请您自担风险,我不保证该方法会真正起作用,并且仅将其发布给真正渴望并愿意尝试使您的应用程序正常运行的那些人:

在yarn-site.xml中(不知道为什么必须设置)

<property>
    <name>yarn.scheduler.fair.user-as-default-queue</name>
    <value>false</value>
    <description>Disable username for default queue </description>
</property>

在fair-scheduler.xml中
<allocations>
    <queue name="default">
         <!-- you set an integer value here which is number of the cores at your disposal minus one (or more) -->
        <maxRunningApps>number of cores - 1</maxRunningApps>
   </queue>
</allocations>

关于hadoop - hadoop公平调度程序和容量调度程序均未按预期进行调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991793/

相关文章:

xml - Spring <sws :interceptors> to annotation based configuration

laravel - 如何在 Laravel 5.# 中以秒的方式使用调度程序

c - Windows 中进程的最短保证时间是多少?

macos - OSX - 无法将文件从本地文件系统复制到 hdfs

hadoop - 将 Spark 的输出合并到一个文件中

hadoop - 客户端无法通过 :[TOKEN, KERBEROS 进行身份验证]

c# 在 session 之间保存目录

java - Hibernate:无法解析配置:hibernate.cfg.xml?

triggers - 每次使用Quartz.NET都会出现错误

java - Hadoop - 查找 IP 命中总数和唯一 IP 地址,然后找到平均值(总 IP 命中数/uniqueIP)