输入路径和节点之间的Hadoop关系

输入路径和节点之间的Hadoop关系,hadoop,Hadoop,我正在使用FileInputFormat.addInputPath为hadoop作业指定输入文件列表的路径。我发现,如果我的输入目录中有x文件,那么在整个工作过程中,x映射程序都会启动 我想知道是否有任何方法可以指定哪些输入文件将对应于某个节点,这样我就可以控制哪台机器将对某组输入文件进行操作 我这样做的原因是因为我使用的是一个异构集群,我希望尽可能平衡工作负载。你不能这样做,因为那样会大大降低你的工作速度。但是,您可以通过使用公平调度程序来增加任务的局部性(由于它使用了一种称为“延迟调度”的技

我正在使用FileInputFormat.addInputPath为hadoop作业指定输入文件列表的路径。我发现,如果我的输入目录中有x文件,那么在整个工作过程中,x映射程序都会启动

我想知道是否有任何方法可以指定哪些输入文件将对应于某个节点,这样我就可以控制哪台机器将对某组输入文件进行操作


我这样做的原因是因为我使用的是一个异构集群,我希望尽可能平衡工作负载。

你不能这样做,因为那样会大大降低你的工作速度。但是,您可以通过使用公平调度程序来增加任务的局部性(由于它使用了一种称为“延迟调度”的技术)。解释了可以修改的配置参数,以实现更高的局部性(代价是等待更多的节点);请参阅
locality.threshold.*
参数


有关Hadoop中的局部性问题的更多详细信息,请参见本文。另外,请参阅上的“延迟计划”部分。

谢谢您的回答!但是,我想知道您是否有关于如何处理异构机器的建议?不同机器之间在内存和CPU方面的差异相对较大,因此我确实希望避免在较慢的机器上运行耗时较长的映射程序。@olshansk您无法避免它们,但推测性执行应该会解决您的问题。有关更多详细信息,请参阅。