当你在kafka-run-class.sh中添加了export JMX_PORT=9300 开启了 jmx 后, 在使用 kafka bin/目录下的脚本时会报如下错误:
java.rmi.server.ExportException: Port already in use
可参考如下文章解决 https://github.com/apache/kafka/pull/1983/commits/2c5d40e946bcc149b1a9b2c01eced4ae47a734c5
实时生效,不需要重启节点。
但是这会引入另外一个问题,就是重启节点后无法再通过JMX监控拉取kafka节点信息指标。
重启之后
if [ ISKAFKASERVER" ]; 不为true
解决办法:
替换成 if [ ISKAFKASERVER" == "true" ]; then 即可
感兴趣的可以了解下shell语法
PS:报这个错误的根本原因是kafka-run-class.sh是个被调用脚本,当被其他脚本调用的同时,java会绑定该端口,这个时候就会报错端口占用了
网友评论