如何指定在Kafka 0.9 / 0.10中使用的JMX端口,并且在运行任何命令行命令时不会遇到端口冲突?

时间:2016-08-29 19:14:07

标签: apache-kafka hortonworks-data-platform

首先,我不确定标准Kafka包装中是否存在此问题。我在HDP 2.4中使用Hafonworks打包的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:已在使用的地址

2 个答案:

答案 0 :(得分:3)

不要破解你的kafka-run-class.sh文件,它会在下次更新时被删除

在你的kafka-env.sh中你应该把它(基于kafka-run-class.sh

if [ "x$ISKAFKASERVER" == "xtrue" ]; then
   export JMX_PORT=16667
fi

答案 1 :(得分:0)

/usr/hdp/current/kafka-broker/bin/kafka-run-class.sh的第112行更改为以下内容:

if [  $JMX_PORT ] && [ -z "$ISKAFKASERVER" ]; then