我有一个YARN集群和集群中的几十个节点。我的程序是一个仅限地图的工作。 它的Avro输入非常小,有几百万行,但处理单行需要大量的CPU能力。我观察到的是许多map任务在单个节点上运行,而其他节点没有参与。这会导致某些节点非常慢并影响整体HDFS性能。我认为这种行为是因为Hadoop数据位置。
我很好奇是否可以将其关闭,还是有另一种方法迫使YARN跨群集更均匀地分配地图任务?
谢谢!
答案 0 :(得分:1)
假设您无法轻松地在整个群集中更均匀地重新分配数据(当然,并非所有数据都在1个节点上吗?!)这似乎是放松地点的简单方法:
yarn.scheduler.capacity.node-locality-delay
此设置的默认值应为40,尝试将其设置为1以查看是否具有所需效果。也许0甚至可以工作。