当 运行 任何命令行命令时,如何指定 JMX 端口在 Kafka 0.9/0.10 中使用而不是 运行 进入端口冲突?
How to specify JMX port to use in Kafka 0.9/0.10 and not run into port conflict when running any of the command line commands?
首先,我不确定标准 Kafka 包装中是否存在此问题。我正在使用 Hortonworks 在 HDP 2.4
中打包的 Kafka
在HDP 2.3和Kafka 0.8.2中,我在Kafka环境/etc/kafka/conf/kafka-env.sh中导出JMX_PORT=9999。 /usr/hdp/current/kafka-broker/bin/kafka-topics.sh 等所有命令行命令都可以正常工作。
在 HDP 2.4 和 Kafka 0.9 或 HDP 2.5 和 Kafka 0.10 中不是这样。无论我将 JMX_PORT 设置到哪个端口,任何命令都会抛出以下错误:
错误:代理抛出异常:java.rmi.server.ExportException:端口已在使用:9999;嵌套异常是:
java.net.BindException: 地址已被使用
将 /usr/hdp/current/kafka-broker/bin/kafka-run-class.sh
的第 112 行更改为以下内容:
if [ $JMX_PORT ] && [ -z "$ISKAFKASERVER" ]; then
不要破解您的 kafka-run-class.sh 文件,它会在下次更新时被删除
在你的 kafka-env.sh
中你应该把那个(基于 kafka-run-class.sh
)
if [ "x$ISKAFKASERVER" == "xtrue" ]; then
export JMX_PORT=16667
fi
首先,我不确定标准 Kafka 包装中是否存在此问题。我正在使用 Hortonworks 在 HDP 2.4
中打包的 Kafka在HDP 2.3和Kafka 0.8.2中,我在Kafka环境/etc/kafka/conf/kafka-env.sh中导出JMX_PORT=9999。 /usr/hdp/current/kafka-broker/bin/kafka-topics.sh 等所有命令行命令都可以正常工作。
在 HDP 2.4 和 Kafka 0.9 或 HDP 2.5 和 Kafka 0.10 中不是这样。无论我将 JMX_PORT 设置到哪个端口,任何命令都会抛出以下错误:
错误:代理抛出异常:java.rmi.server.ExportException:端口已在使用:9999;嵌套异常是: java.net.BindException: 地址已被使用
将 /usr/hdp/current/kafka-broker/bin/kafka-run-class.sh
的第 112 行更改为以下内容:
if [ $JMX_PORT ] && [ -z "$ISKAFKASERVER" ]; then
不要破解您的 kafka-run-class.sh 文件,它会在下次更新时被删除
在你的 kafka-env.sh
中你应该把那个(基于 kafka-run-class.sh
)
if [ "x$ISKAFKASERVER" == "xtrue" ]; then
export JMX_PORT=16667
fi