我正在通过Oozie从shell脚本运行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/
...
请提供您的想法。
答案 0 :(得分:0)
"问题已修复"
我后来与DevOps交谈过,发现Java的类路径没有设置在Cluster的几个数据节点中。这会阻止shell操作在这些datanode上调用JVM。 修复类路径后,作业成功运行。 @Charles Duffy提到的所有评论都是有效的。
答案 1 :(得分:-1)
您是否在hdfs位置附带了integration-tools.jar和代码jar? Oozie可以选择任何节点来运行java动作,它会在该位置查找这些jar。