【发布时间】:2016-09-03 23:00:40
【问题描述】:
我在 HDFS 中有一个任务列表文件,任务列表受 CPU 限制,将在带有 Hadoop MapReduce(仅限地图)的小型 5 节点集群中执行。例如,任务列表文件包含 10 行,每行对应一个任务命令。每个任务的执行都需要很长的时间,所以列出的 10 个任务在所有 5 个节点上并行执行肯定会更有效率。
但是,由于任务列表文件很小,这个数据块可能只位于一个节点上,因此根据数据局部性原则,只有该节点会执行所有这 10 个任务。是否有任何解决方案可以确保所有 10 个任务在所有 5 个节点上并行执行?
【问题讨论】:
-
取决于您是否想在集群上执行其他操作,非常简单,但有一些缺点,解决方案可能是限制每个节点的映射器数量(mapred.tasktracker.map.tasks.maximum 配置)