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