今天在开发 mapreduce 程序的过程中,为了快速开发,程序的整体框架是从别的业务复制过来的,自己增加一些数据处理逻辑以及环境的参数配置。接着就遇到问题,在本地本机测试的时候,Job 作业无法启动,总是抛出异常,然后进程退出。本机系统为 Windows 7 X64。
异常错误信息简略如下:
1 | Exit code: 1 |
本文记录这个现象以及解决方案。
问题出现
在本地本机启动 Job 时无法正常运行作业,直接抛出异常后退出进程,完整错误信息如下:
1 | Diagnostics: Exception from container-launch. |
其中的重点在于:Exception message: /bin/bash: line 0: fg: no job control,由于我不了解这种错误,只能靠搜索引擎解决了。
问题解决
问题解决很容易,在 Job 的配置中增加一项:mapreduce.app-submission.cross-platform,取值为 true,截取代码片段如下:
1 | Configuration conf = job.getConfiguration (); |
这个配置的含义就是跨平台,保障 Job 作业可以在 Windows 平台顺利运行。
备注
参考:stackoverflow 讨论一例 。

