报错信息
ACTION[0000001-191110122545583-oozie-ben-W@shell-node] Error starting action [shell-node]. ErrorType [TRANSIENT], ErrorCode [JA009], Message [JA009: Unknown rpc kind in rpc headerRPC_WRITABLE]
org.apache.oozie.action.ActionExecutorException: JA009: Unknown rpc kind in rpc headerRPC_WRITABLE
at org.apache.oozie.action.ActionExecutor.convertExceptionHelper(ActionExecutor.java:418)
at org.apache.oozie.action.ActionExecutor.convertException(ActionExecutor.java:392)
at org.apache.oozie.action.hadoop.JavaActionExecutor.submitLauncher(JavaActionExecutor.java:990)
at org.apache.oozie.action.hadoop.JavaActionExecutor.start(JavaActionExecutor.java:1145)
at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:228)
at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:63)
at org.apache.oozie.command.XCommand.call(XCommand.java:281)
at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:323)
at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:252)
at org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:174)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
原因
提交任务后发现,Yarn的页面没有任何反应,没有接收到任务。Oozie一直卡在Running状态。
查找相关资料后,发现原因是Oozie提交Job时,调用了Hadoop1.x版本的提交方式。Hadoop2.x版本将MapReduce和Yarn拆分解耦,因此无法提交Job到Yarn上运行。
参考链接
https://stackoverflow.com/questions/27606807/how-can-i-submit-a-cascading-job-to-a-remote-yarn-cluster-from-java
http://www.blogjava.net/liuguly/archive/2016/12/06/432055.html
解决
- 检查Oozie/libext下是否存在MR1的jar包
果然,始作俑者[ben@hadoop102 libext]$ ls | grep mr1 hadoop-client-2.5.0-mr1-cdh5.3.6.jar hadoop-core-2.5.0-mr1-cdh5.3.6.jar
- 将mr1的文件删除
- 运行命令重新打包war包
[ben@hadoop102 oozie-4.0.0-cdh5.3.6]$ bin/oozie-setup.sh prepare-war
- 启动Oozie服务并重新提交任务即可