Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop Fair Scheduler未将任务分配给某些节点_Hadoop_Scheduler - Fatal编程技术网

Hadoop Fair Scheduler未将任务分配给某些节点

Hadoop Fair Scheduler未将任务分配给某些节点,hadoop,scheduler,Hadoop,Scheduler,我正在尝试运行Fair Scheduler,但它没有将映射任务分配给仅运行一个作业的某些节点。我的理解是,公平调度程序将使用conf插槽限制,除非存在多个作业,此时公平性计算开始。我还尝试在fair scheduler.xml中将所有队列设置为FIFO,但得到了相同的结果 我已经在所有mapred site.xml文件中使用mapreduce.jobtracker.taskscheduler参数设置了调度程序(尽管我相信只有jobtracker需要它),并且一些节点在接收和运行Map任务时没有问

我正在尝试运行Fair Scheduler,但它没有将映射任务分配给仅运行一个作业的某些节点。我的理解是,公平调度程序将使用
conf
插槽限制,除非存在多个作业,此时公平性计算开始。我还尝试在
fair scheduler.xml
中将所有队列设置为FIFO,但得到了相同的结果

我已经在所有
mapred site.xml
文件中使用
mapreduce.jobtracker.taskscheduler
参数设置了调度程序(尽管我相信只有jobtracker需要它),并且一些节点在接收和运行Map任务时没有问题。但是,其他节点要么从未获得任何映射任务,要么获得一轮映射任务(即,所有插槽填充一次),然后再也没有获得任何映射任务

我尝试将此作为开发自己的LoadManager的先决条件,因此我继续将调试LoadManager放在一起。从日志消息中,我可以看到问题节点不断请求映射任务,并且它们的插槽是空的。然而,他们从来没有被分配任何任务

所有节点都可以与默认调度程序完美配合。当我启用公平调度程序时,我刚刚开始出现这个问题

有什么想法吗?是否有人能做到这一点,并且迈出了我错过的一步


编辑:值得注意的是,Fair Scheduler web UI页面指示正确的公平共享计数,但Running列总是较少。我使用默认的每个用户池,一次只能有一个用户和一个作业。

原因是未记录的
mapred.fairscheduler.locality.delay
参数。有问题的节点位于禁用HDFS的不同机架上,使得这些节点上的所有任务都不是机架本地的。因此,由于Fair Scheduler的延迟调度算法(如上所述),它们会产生较大的延迟。

原因是未记录的
mapred.fairscheduler.locality.Delay
参数。有问题的节点位于禁用HDFS的不同机架上,使得这些节点上的所有任务都不是机架本地的。因此,由于Fair Scheduler的延迟调度算法(如上所述),它们会产生较大的延迟