当前位置: 首页 > 知识库问答 >
问题:

如何一个接一个地顺序运行MapReduce作业

万俟震博
2023-03-14

我正在运行一个单节点集群并处理timeseries数据。我有一组MapReduce作业从客户端应用程序定期运行(使用Quartz crontrigger)。例如,

job1 : runs every 10 min .priority VERY_HIGH
job2 : runs every hour (it takes input from the output of job1).priority HIGH
job3 : runs every day(it takes input from the output of job2).priority NORMAL

.....

一切都很好。但是有时,可以同时触发多个作业,例如在凌晨00:00触发job1、job2、job3。即使设置了作业优先级,由于可用的映射槽,这些作业被发现是并行执行的。因此,对于低优先级作业,一些输入数据被遗漏了。

共有1个答案

曾翰飞
2023-03-14

尝试将这些设置更改为1:

mapred.tasktracker.map.tasks.mapred.tasks.mapred.tasks.mapred.tasks.mapred.tasks.maximum 1

如果将mapper和reducer的no限制为1,那么下一个作业必须等待下一个mapper完成。如果你看,这不是一个好的解决办法。

使用Oozie工作流引擎将最适合您的需要。

 类似资料:
  • 假设我在Hadoop环境中资源有限,我不想安排长时间运行的作业(即需要几天时间才能完成)。我正在分析大量过去的时间序列数据。我想安排一次需要一天数据的mapreduce作业(这需要一个小时来处理)。 那么,我如何安排,使新的工作提交后,前一个工作完成?

  • 我的目标是让一系列测试一个接一个地运行。我希望有一个“登录”脚本让用户登录,然后在同一窗口/驱动程序中继续执行以下脚本。我使用的是TestNG,所以我的测试套件设置在TestNG.xml文件中(如果有帮助的话)。 我要运行的下一个脚本:

  • 考虑以下以串行/顺序方式读取文件数组的代码。返回一个promise,该promise仅在按顺序读取所有文件后才解析。 上面的代码可以工作,但我不喜欢必须为事情按顺序发生而做递归。有没有更简单的方法可以重写这段代码,使我不必使用我怪异的函数? 最初,我尝试使用,但这导致所有调用并发发生,这不是我想要的:

  • 问题内容: 考虑以下以串行/顺序方式读取文件数组的代码。返回一个promise,仅当依次读取所有文件后,promise才会解析。 上面的代码有效,但是我不喜欢必须递归使事情顺序发生。有没有更简单的方法可以重写此代码,这样我就不必使用怪异的函数了? 最初我尝试使用,但是这导致所有调用同时发生,这 不是 我想要的: 问题答案: 2017年更新 :如果环境支持,我将使用异步功能: 如果需要,可以使用异步

  • 我试着运行一个程序,使用线程显示带有数字的乘法、除法、加法和减法表。 但是我希望数字被乘以或相加等。由用户选择。 也就是说,程序应该在用户为每个操作选择一个数字后运行,然后显示结果。