Oozie-- java: 找不到命令 - shell 操作

Oozie-- java: command not found - shell action

我正在通过 Oozie 运行从 shell 脚本创建一个 java 程序,但出现以下错误

java: command not found

当我 运行 来自边缘节点的 shell 脚本时,我没有发现任何问题并且 java class 运行s 没有任何错误我也得到了想要的输出。然而,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/
...

请提供您的想法。

你有你的集成-tools.jar 连同你的代码 jar 在 hdfs 位置吗? Oozie 可以选择任何节点进行 运行 java 操作,它会在该位置查找这些 jar。

"Issue Fixed"

后来我与我的 DevOps 交谈,发现 Java 的类路径没有在集群中的几个数据节点中设置。这正在停止 shell 操作以在这些数据节点上调用 JVM。 修复类路径后,作业 运行 成功。 @Charles Duffy 提到的所有评论都是有效的。