Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 尝试获取卡夫卡中所有主题的列表时发生绑定异常_Apache Kafka - Fatal编程技术网

Apache kafka 尝试获取卡夫卡中所有主题的列表时发生绑定异常

Apache kafka 尝试获取卡夫卡中所有主题的列表时发生绑定异常,apache-kafka,Apache Kafka,我使用以下命令获取卡夫卡中所有主题的列表 ./bin/kafka-topics.sh --list --zookeeper localhost:2181 但是我得到了以下错误 Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999; nested exception is: java.net.BindException: Address alrea

我使用以下命令获取卡夫卡中所有主题的列表

./bin/kafka-topics.sh --list --zookeeper localhost:2181
但是我得到了以下错误

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999; nested exception is:
    java.net.BindException: Address already in use (Bind failed)

我的卡夫卡版本是
0.10.1.0

我觉得9999端口就是JMX端口。您是否在代理端启用了JMX端口(设置JMX_端口和KAFKA_JMX_OPTS env vars)?如果是,您是否已按系统设置这些环境变量?
与所有其他工具一样,kafka-topics.sh命令在内部使用kafka-run-class.sh启动Java类(本例中为TopicCommand)。如果在启动工具的控制台中设置了上述env变量,那么它会尝试在那里启用JMX,并且与代理中启用的JMX端口冲突。您能确认是否设置了上述变量吗?

很抱歉,我这么晚才开始讨论这个问题,但我今天遇到了这个问题,这篇文章帮助我找到了一个可行的解决方案,所以我想发布我的解决方案。我分别在Cloudera(née Hortworks)HDPV3.1和2.6.5下用Kafka v2.0和1.0测试了这一点

正如前面的回答中所建议的,kafka-run-class.sh需要更新。表示您正在运行。/bin/kafka-topics.sh;运行类脚本应该位于同一目录中的主题脚本旁边。在我的Hadoop代理上,路径是/usr/hdp/current/kafka-broker/bin/

查找脚本的此部分:

# JMX port to use
if [ $ISKAFKASERVER = "true" ]; then
    JMX_REMOTE_PORT=$JMX_PORT
else
    JMX_REMOTE_PORT=$CLIENT_JMX_PORT
fi
并将其更改为:

# JMX port to use
if [ $ISKAFKASERVER = "true" ]; then
    JMX_REMOTE_PORT=$JMX_PORT
else
    JMX_REMOTE_PORT=$CLIENT_JMX_PORT
    unset KAFKA_OPTS
fi
当然,这假设JMX端口通过$KAFKA_OPTS设置在上游,并且不需要任何特殊设置


我还没有测试过它,但理论上,取消设置JMX#U端口也可以,而且您可以始终使用类似KAFKA_OPTS=“my special options”的内容覆盖KAFKA_OPTS值;然后KAFKA_JMX_OPTS=“$KAFKA_JMX_OPTS-Dcom.sun.management.jmxremote.port=$JMX_port”fi我在
KAFKA run class.sh
中找到的这些行。是的,这是我已经知道的代码,你必须告诉我在你的环境中是否设置了这些变量。我还没有配置KAFKA。。我不知道去哪里看。。。你能告诉我如何知道它们是否设置好了吗。。我的意思是,我必须在哪个文件中看到这个信息,或者有任何命令知道这个信息,你说的“我没有配置卡夫卡”是什么意思。。。你在经营卡夫卡经纪人吗?您是使用Linux还是Windows?检查环境变量不是卡夫卡相关的问题。我在linux上运行卡夫卡,