У меня возникли некоторые трудности с детализацией этой ошибки, и я не могу найти ничего, связанного с этой проблемой, с моей настройкой.Я нашел некоторые статьи, касающиеся ошибки в целом, но после исследования они не применимы к моей установке.
Вот что происходит ... и я только указал, что это происходит в 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). Это прекрасно работает без проблем, если я запускаю его при входе в систему через оболочку.
Однако, если я делаю то же самое, что и скрипт, в записи crontab, которая запускается каждый5 минут, например:
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
...
Моим первым предположением было то, что переменная среды JAVA_HOME не была установлена для контекстаcrontab, поэтому я вручную добавил эту переменную окружения в скрипт, чтобы убедиться, что JAVA_HOME сохранен.
Кроме того, я посмотрел файл kafka / bin / kafka-run-class.sh и посмотрел на другие возможные переменныекоторые вступают в игру, так как в конце концов kafka-console-producer.sh ссылается на этот файл.Например, я вручную установил JAVA_MAJOR_VERSION, на который есть ссылка в этом файле, как часть скрипта.
Все еще не повезло.Опять же, что ломает мне голову, так это то, что обычный пользователь, вошедший в оболочку, если я запускаю скрипт, работает.Это не работает только при использовании crontab для планирования сценария с интервалом.
Все указывает мне на некоторую переменную окружения, недоступную в контексте crontab, но я не могу понять это.
Есть идеи?