我试图在hadoop中将多个作业链接到一个作业中(我使用的是api版本1.2.1)。我偶然看到一篇关于这个主题的文章,请看这里。
我的主要课程如下:http://pastebin.com/c21pkm1j (我做了一个小的清理和重新安排,使它更可读)我正在使用cloudera演示vm。在我使用链锁之前,我的简单工作做得很好。这个版本仅仅在10-20秒内完成,没有任何错误,也没有任何来自日志文件的有价值的信息。我很确定没有一项工作真正开始,但我不知道为什么。
编辑:根本不创建输出目录。
编辑:我将jobrunner和handlerun片段包含到我的代码中,以便从此处进行调试。它运行两次迭代(我看到“仍在运行”两次),并正常退出。
编辑:我像个老板一样忙了好几个小时。似乎有很多“工作”的例子,hadoop版本和正确的api调用都会出现问题(hadoop core.jar中有许多类的名称相同)。
1条答案
按热度按时间mxg2im7a1#
这个答案可能对你有帮助。根据您使用的api,您必须使用setmapperclass和setreducerclass以及submit job不断更改Map和减少类。另外,如果要将上一个作业的输出作为下一个作业的输入,请使用字符串变量动态地提供输出路径(如果不需要这部分,可以使用脚本)
以下是旧api