Oozie- Java:找不到命令 - 外壳动作



我正在通过oozie从外壳脚本运行一个Java程序,我得到以下错误

java: command not found

当我从边缘节点运行Shell脚本时,我找不到任何问题,Java类也没有任何错误,我也会得到所需的输出。但是,正是Oozie作业无法运行Java命令。

Oozie中的所有其他动作均被执行,但是当它遇到java行时,它会将上述错误抛出。我了解Hadoop群集中的所有节点都将安装Java,那为什么要遇到此错误?以下是我在shell脚本中的java命令

...
...    
java -cp $LOCAL_DIR/libs/integration-tools.jar com.audit.reporting.GenerateExcelReport $LOCAL_DIR/input.txt $LOCAL_DIR/
...

请提供您的想法。

我稍后与DevOps进行了交谈,发现Java的类Path并未在集群中的几个datanodes中设置。这是在阻止Shell动作在这些数据码中调用JVM。修复了classPath之后,工作成功。@Charles Duffy提到的所有评论都是有效的。

您是否有Integration-tools.jar以及HDFS位置的代码罐?Oozie可以选择任何节点来运行Java动作,它将在该位置寻找这些JAR。

最新更新