AIX 7.1 crontab中的Kafka Producer收到JAVA错误:错误的主要版本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AIX 7.1 crontab中的Kafka Producer收到JAVA错误:错误的主要版本相关的知识,希望对你有一定的参考价值。

我在深入研究这个错误时遇到了一些困难,似乎无法通过我的设置找到与此问题相关的任何内容。我确实找到了一些关于错误的文章,但经过研究后它们不适用于我的设置。

这是正在发生的事情......我只是指出它发生在IBM AIX 7.1上,以防有任何特定于AIX的东西我应该看一下,但我想这个错误也可能发生在Linux机器上。

目标:

运行命令,将命令传递给kafka-console-producer.sh到特定的Kafka主题,如下所示:

    ps -ef | /kafka/bin/kafka-console-producer.sh --broker-list <IP>:9092 --topic running_processes

上面的命令获取“ps -ef”的输出并将其发送到我的主题(running_processes)。如果我在通过shell登录系统时运行它,这完全没问题。

但是,如果我在每5分钟运行一次的crontab条目中执行与脚本完全相同的操作,如下所示:

    0,5,10,15,20,25,30,35,40,45,50,55 <path of script> >> <path of log> 2>&1

这是我在日志文件中得到的:

    ...
    Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=org/apache/kafka/clients/producer/Callback, offset=6
    ...

我的第一个猜测是没有为crontab的上下文设置JAVA_HOME环境变量,所以我在脚本中手动添加了该环境变量以确保保存了JAVA_HOME。

此外,我查看了kafka / bin / kafka-run-class.sh文件并查看了其他可能发生的变量,因为毕竟kafka-console-producer.sh确实引用了该文件。例如,我手动将该文件中引用的JAVA_MAJOR_VERSION设置为脚本的一部分。

仍然没有运气。再说一遍,我的大脑在于,正如普通用户登录shell一样,如果我运行脚本,它就可以工作了。它仅在使用crontab以一定间隔计划脚本时不起作用。

一切都指向我在crontab的上下文中不可用的一些环境变量,但我无法弄明白。

有任何想法吗?

答案

正如@LorinczyZsigmond所述,在设置JAVA_HOME之后,然后路径(导出PATH =“$ JAVA_HOME / bin:$ PATH”工作。谢谢!

以上是关于AIX 7.1 crontab中的Kafka Producer收到JAVA错误:错误的主要版本的主要内容,如果未能解决你的问题,请参考以下文章

AIX 7.1 中的 Cron 作业在错误的时间运行

无法从 crontab 中对文件进行分类 - 猫:0652-050 ​​- unix AIX

AIX 的 Crontab @reboot

aix 7.1安装sudo

aix 7.1 中缺少 getopt.h

aix crontab 每小时执行怎么设置