hadoop - 如何依次依次运行MapReduce作业

标签 hadoop scheduling

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

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。即使设置了优先级作业(由于可用的映射槽位),这些作业也被并行执行。因此,低优先级作业缺少一些输入数据。

简介:我需要根据作业优先级严格在FIFO中执行。这意味着应该以每次只能运行一个作业的方式进行限制。即作业1完成,然后作业2完成,作业3 ..

我不知道hadoop调度程序可以如何帮助我。请指教。

最佳答案

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

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

如果将Mapper和Reducer的数量限制为1,则下一个作业必须等待下一个Mapper完成。如果您看,这不是一个好的解决方案。

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

关于hadoop - 如何依次依次运行MapReduce作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898559/

相关文章:

c - sleep 时信号处理比旋转时慢?

php - php上的休眠功能

hadoop - 在 Hive 中高效存储数据

ubuntu - 在没有密码的情况下启动hadoop守护程序

java - 如何在 hadoop 源代码中调试 native 函数?

algorithm - 预先安排重复性任务

java - HBase PerformanceEvaluation,如何分配columnFamily和列名?

hadoop - 从节点在hadoop中可以有多个相同文件的 block 吗?

scheduling - 如何在 SuperCollider 模式中的音符计时中添加一些随机抖动?

algorithm - 动态编程间隔调度与作业之间的时间