kafka binding to ipv6 port even though ipv4 address specified in config

I am in a bit of a bind (pun intended).

I have a ubuntu server running kafka & zookeeper. This server has both ipv4 and ipv6 protocols installed.

In the server.properties file, I specified the host.name and advertised.host.name as my public ipv4 address.

When I start zookeeper and kafka, kafka still binds to ipv6 port.

$ netstat -l -t | grep 9092 
tcp6       0      0 ferozed-linux3.mydomain:9092 [::]:*                  LISTEN

The client machine from which I am running a producer in a MapReduce job, is an IPv4 machine. Due to the fact that the server is binding to an IPv6 interface, the client is unable to connect to it.

Any idea how I can fix this?

3 Answers

10
 

Starting from Andrey's answer, you can solve it just by adding an environment variable

export KAFKA_OPTS="-Djava.net.preferIPv4Stack=True"
 
 

If I understand you correctly, you need the following:

System.setProperty ("java.net.preferIPv4Stack", "true");

in the code, or

-Djava.net.preferIPv4Stack = True

in the web server startup script worked.

Did you try it?

 

Add this is kafka/bin/Kafka-run-class.sh

KAFKA_OPTS="-Djava.net.preferIPv4Stack=True"

And restart Kafka broker.

posted @ 2021-05-27 08:59  大数据从业者FelixZh  阅读(1062)  评论(0编辑  收藏  举报