Apache Kafka 2.12-1.1.0 не работает с JDK -10.0.1 - PullRequest
0 голосов
/ 24 мая 2018

Почему Apache Kafka 2.12-1.1.0 не работает с JDK 10.0.1?

./bin/zookeeper-server-start.sh config/zookeeper.properties 
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)
/..../kafka_2.12-1.1.0/bin/kafka-run-class.sh: line 252: [[: 10 2018-04-17: syntax error in expression (error token is "2018-04-17")
[0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/..../kafka_2.12-1.1.0/bin/../logs/zookeeper-gc.log instead.
Unrecognized VM option 'PrintGCDateStamps'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Ответы [ 4 ]

0 голосов
/ 03 июля 2018

Изменение bin/kafka-run-class.sh с помощью приведенного ниже кода сделало магию:

В строке # 251

До:

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*"/\1/p')

После:

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([^.-]*).*/\1/p')
0 голосов
/ 03 июня 2018

Существует проблема в регулярном выражении, используемом для идентификации версии Java в bin/kafka-run-class.sh, особенно если вы используете openjdk.

Вы можете заменить line 255 в bin/kafka-run-class.sh на:

JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')

как в https://github.com/apache/kafka/blob/trunk/bin/kafka-run-class.sh#L286

0 голосов
/ 12 июня 2018

JAVA_MAJOR_VERSION = $ ($ JAVA-версия 2> & 1 | sed -E -n 's /.* версия "([0-9] ). $ / \ 1 / p')

Эта строка решила мою проблему с openjdk!

Это оригинальная строка из bin / kafka-run-class.sh, которую вам нужно заменить:

JAVA_MAJOR_VERSION = $ ($ JAVA -version 2> & 1 | sed -E -n 's /. Версия "([^ .-] ). " / \ 1 / p')

0 голосов
/ 01 июня 2018

Вы можете удалить некорректную опцию регистрации KAFKA_GC_LOG_OPTS для java 10 из файла kafka-run-class.sh

из

KAFKA_GC_LOG_OPTS = "- Xloggc: $ LOG_DIR / $ GC_LOG_verLEN: gc -XX: + PrintGCDetails -XX: + PrintGCDateStamps -XX: + PrintGCTimeStamps -XX: + ИспользоватьGCLogFileRotation -XX: NumberOfGCLogFiles = 10 -XX: GCLogFileSize = 100M "

до

100_SK_TS_8_G_8_G_8_G_8_G_8_8_G_8_G_8_G_8"-Xloggc: $ LOG_DIR / $ GC_LOG_FILE_NAME -verbose: gc -XX: + PrintGCDetails"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...