首先,我不确定标准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:已在使用的地址
答案 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