我有一个Yarn簇和簇中的几十个节点。我的程序只是一个Map作业。它的avro输入非常小,只有几百万行,但是处理一行需要大量的cpu能力。我观察到,许多maps任务都在单个节点上运行,而其他节点没有参与。这会导致一些节点非常慢,并影响整体hdfs性能。我假设这种行为是因为hadoop的数据局部性。我很好奇是否可以关闭它,或者是否有其他方法可以强制yarn在集群中更均匀地分布map任务?谢谢!
yzuktlbb1#
假设您不能轻松地在集群中更均匀地重新分布数据(当然不是所有数据都在一个节点上,对吗?!)这似乎是放松的简单方法:
yarn.scheduler.capacity.node-locality-delay
此设置的默认值应为40,请尝试将其设置为1,以查看此设置是否具有所需的效果。也许甚至0也能起作用。
1条答案
按热度按时间yzuktlbb1#
假设您不能轻松地在集群中更均匀地重新分布数据(当然不是所有数据都在一个节点上,对吗?!)这似乎是放松的简单方法:
此设置的默认值应为40,请尝试将其设置为1,以查看此设置是否具有所需的效果。也许甚至0也能起作用。