hadoop - Mapreduce 作业消耗更多资源和更改队列

标签 hadoop mapreduce bigdata hadoop2 hortonworks-data-platform

我有一个运行超过 1.7 亿条记录的 MapReduce 作业。这导致消耗了 98% 的队列资源和 89% 的集群资源。管理团队建议他们创建配置有限的新队列,我应该将我的工作推送到该队列中。

这里有问题,我有:-

1- 我怎样才能将我的 mapreduce 作业(“hadoop jar”)推送到新队列并进行最少的更改?

2- 由于新创建的队列资源有限,如果队列容量已满怎么办?它会导致长期运行或作业失败吗?

3- 是否有任何其他最佳方法来防止作业消耗所有资源,如果作业运行时间稍长一点,我们就可以接受。

请指教。任何帮助都会很棒。

最佳答案

如果您正在使用容量/公平份额调度程序,并且您的管理员分配了一个队列:

第一个场景(容量):

然后会发生的是,作业将花费很长时间才能完成但不会失败。

如果您的作业消耗了所有资源,而另一个队列有一些资源未被任何其他作业使用,那么您当前的作业也可以使用这些资源。

为了提高性能,您可以增加节点管理器的数量,这样资源也会增加,而且作业将分布在更多节点上,从而降低延迟。

第二种情况(公平份额)

在这种情况下,

假设你有一个 100% 资源的队列,第一个作业将消耗所有资源,如果有任何其他作业进来,资源将按作业数平均分配,即总资源/编号。的工作。

同样,只要提供了该作业所需的最少资源,该作业就会继续运行。但是,时间消耗会更多,这在您的情况下不是问题。

关于hadoop - Mapreduce 作业消耗更多资源和更改队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50700404/

相关文章:

awk - 将日期时间附加到 6 亿行文件中的每一行的末尾

linux - 如何使用shell脚本加载Hbase表

hadoop - Map中的SQL建模精简

hadoop - 使用Hadoop MapReduce从文本文件中的列检索唯一结果

hadoop - 为什么映射器值必须是可写的

java - 从 Web 应用程序运行 MapReduce 作业

javascript - 按时间戳顺序从 couchDB 中获取选定的最新 10 个文档

hadoop - HDP 2.4,如何在一个文件中使用水槽收集hadoop mapreduce日志以及最佳实践

hadoop - 使用 Java 运行 EmbeddedPig 时,Pig 脚本中的 ORDER BY 作业失败

hadoop - 如何在Scalding中记录文件?