我有一个运行超过1.7亿条记录的MapReduce作业。这导致消耗98%的队列资源和89%的集群资源。管理团队建议他们创建具有有限配置的新队列,我应该将我的工作推入该队列。
以下是问题,我有: -
1-如何以最小的更改推送我的mapreduce作业(“hadoop jar”)?
2-由于新创建的队列资源有限,如果队列的容量已满,该怎么办?它会导致长期运行还是失败?
3-有没有其他最佳方法来阻止工作消耗所有资源,如果工作时间更长,我们就可以了。
请指教。任何帮助都会很棒。
答案 0 :(得分:1)
如果您正在使用容量/公平共享计划程序,并且您的管理员指定了一个队列:
第一种情景(容量):
然后会发生什么,这项工作需要很长时间才能完成,但不会失败。
如果您的作业消耗其所有资源而另一个队列中有一些资源未被任何其他作业使用,那么您当前的作业也可以使用这些资源。
为了提高性能,您可以增加节点管理器的数量,以便资源也得到增加,而且,作业将分布在更多节点上,这将导致低延迟。
第二种情景(公平分享)
在这种情况下,
假设你有一个100%资源的队列,第一个工作将消耗所有资源,如果有任何其他工作进入,资源将平均除以工作数,即总资源/否。工作。
同样,只要提供了该作业所需的最低资源,作业就会继续运行。但是,在您的情况下,时间消耗将更多,这不是问题。