kafka启动报错:java.net.UnknownHostException|unknown error at java.net.Inet6AddressImpl.lookupAllHost 很详细

本文介绍了解决Kafka启动过程中遇到的常见配置问题的方法。主要内容包括编辑hosts文件进行IP与kafka监听别名映射、修改Kafka配置文件server.properties中的监听地址、在Windows宿主机上配置hosts文件以及启动Kafka前确保Zookeeper服务已启动。

前言

初步学习kafka时,稍不注意就会发生这个错误,如下图所示

说明:本文是 Kafka介绍和安装详解中分离出来的内容,感兴趣的点击进入

究其原因:

默认情况下,需要进入Kafka解压目录,修改/config/server.properties文件中的监听地址。

默认这个监听地址是没有被放开的,另外也需要单独进入/etc/hosts,配置Ip 与kafka监听别名的映射关系。

直接上图文,更能说明问题。


特别提示:启动kafka前,请务必先启动Zookeeper的server服务

尾部扩展,会有说明! 


一、解决步骤

1、编辑/etc/hosts文件,做IP与kafka监听别名的映射

 vim /etc/hosts

 

注意:

1、配置的这个IP是部署kafka这台虚拟机Linux系统的IP地址,可以通过命令ifconfig获得! 

2、kafkahost仅仅是个别名,含义等同于上面的localhost,下面会用到。

2、编辑kafka/conf/server.properties的监听

进入kafka的解压目录,编辑里面的配置文件

 vim /usr/src/kafka_2.13-3.3.1/config/server.properties

 

操作提示:

打开后,找到Socket Server Settings这一块代码
然后鼠标光标移动到#listeners=PLAINTEXT://:9092”这一行,键盘按1yy(复制这一行的意思),然后光标移动到行尾,按回车键,然后按字母p,复制一行
并编辑为:#listeners=PLAINTEXT://kafkahost:9092
最后,按Esc 后 输入:wq ,保存并退出。

注:可以看到,在上一步骤中虚拟IP的别名kafkahost,在这里用上了!

3、进入物理机(windows宿主机),编辑host

该文件是在C盘下:windows/system32/driver/etc/hosts

用记事本打开hosts文件,尾部追加 “192.168.31.128 kafkahost”后,保存并关闭。

注:kafkahost 这个是自定义的名字,需要同虚拟中的配置是同一个名字(IP是通过ifconfig获得的)。

目的:让物理机上的项目能够愉快的和虚拟中的kafka交互。

4、验证kafka是否启动成功

#  ./bin/kafka-server-start.sh -daemon ./config/server.properties 
# jps
17844 Kafka
4294 QuorumPeerMain
42026 Kafka
42266 Jps

PS:查看kafka是否正常启动的三种方式,感兴趣的话,点击进入

二、关于zookeeper的延伸

 首先,如果你对zk的安装、启动、部署,不太了解的话,可点击进入总结的很详细!!

1、为什么要先启动zk,再启动kafka

简而言之:kafka的运行依赖zk服务的启动。

具体,可以进入kafka的解压目录的/conf/目录下,查看server.properties文件内容。

cd /usr/src/kafka_2.13-3.3.1/config/ && ls
vi server.properties

 

可以明显的看到,kafka的server.properties服务启动的配置文件中,配置的是有zk服务的相关信息的,默认连接的是localhost:2181这个服务。

显而易见,如果不事先启动zk,那么kafka也是独木难支的!! 

尾言

问题解决起来并不是很难,难的是知其然,然后知其所以然。

这些小问题,都是一些小细节,然而一些教程中,主要讲述主干,忽略了部分细节,导致在学习的时候,走几步就会踏一个坑,依次为记,共勉!

入坑使我快乐,入坑使我印象深刻,加油!如果你觉得还不错,欢迎点赞收藏哦,^_^ 

附注

猜你可能会感兴趣

1、Kafka锦集(一):Kafka的介绍 | 下载和安装 | kafka服务无法关闭 | bin/kafka-server-stop.sh无效

2、Kafka锦集(二):三种不同方式,查看kafka是否已启动

Kafka在发送消息时出现`Error connecting to node ccsykafka02:59092: java.net.UnknownHostException`错误,通常与网络配置、主机名解析或Kafka的监听器配置有关。以下是解决该问题的几种方法: 1. **检查主机名解析** `java.net.UnknownHostException`表明客户端无法解析主机名`ccsykafka02`。确保运行Kafka客户端的机器能够通过DNS或本地`/etc/hosts`文件解析该主机名。可以在`/etc/hosts`中添加如下条目: ``` 192.168.x.x ccsykafka02 ``` 其中IP地址应替换为`ccsykafka02`对应的实际IP地址[^3]。 2. **验证Kafka Broker的监听器配置** Kafka Broker的`server.properties`文件中需要正确配置`listeners`和`advertised.listeners`参数。如果客户端通过外部网络访问Kafka,则必须设置`advertised.listeners`以确保客户端获得正确的连接地址。例如: ```properties listeners=PLAINTEXT://0.0.0.0:59092 advertised.listeners=PLAINTEXT://<broker_ip>:59092 ``` 其中`<broker_ip>`应替换为Broker的公网或内网IP地址[^5]。 3. **重启Kafka服务** 如果已经修改了配置文件,需要重启Kafka服务以使更改生效。可以使用以下命令停止并重新启动Kafka: ```bash # 停止 Kafka 服务 kafka-server-stop.sh # 启动 Kafka 服务(后台运行) kafka-server-start.sh -daemon /path/to/server.properties ``` 4. **检查防火墙和端口开放情况** 确保客户端能够访问Kafka Broker的端口(如59092)。可以通过`telnet`或`nc`命令测试端口连通性: ```bash telnet ccsykafka02 59092 ``` 如果连接失败,检查服务器的防火墙规则是否允许该端口的通信[^2]。 5. **确认客户端配置** 在Kafka客户端(生产者或消费者)的配置中,确保使用的`bootstrap.servers`指向正确的Kafka Broker地址和端口。例如: ```properties bootstrap.servers=ccsykafka02:59092 ``` 如果使用的是IP地址而非主机名,确保IP地址正确无误[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值