我的zookeeper没有设置密码,kafka启动后一直打印日志:[2023-05-30 17:23:46,667] INFO [SocketServer listenerType=ZK_BROKER, nodeId=0] Failed authentication with /1.116.27.239 (Unexpected Kafka request of type METADATA during SASL handshake.) (org.apache.kafka.common.network.Selector)
时间: 2024-02-21 18:01:22 浏览: 94
开源监控管理zookeeper工具:exhibitor-1.6
根据错误日志,您的Kafka Broker正在尝试使用SASL身份验证机制连接Zookeeper,但是Zookeeper没有设置密码,这可能导致身份验证失败。
为了解决此问题,您可以在Kafka Broker的配置文件中禁用SASL身份验证机制,或者在Zookeeper中设置密码并在Kafka Broker的配置文件中正确配置SASL身份验证机制。
要禁用SASL身份验证机制,请在Kafka Broker的配置文件中将以下属性设置为PLAINTEXT:
```
listeners=PLAINTEXT://your_kafka_broker_host:9092
```
如果您想继续使用SASL身份验证机制,则需要在Zookeeper中设置密码。您可以通过以下步骤设置Zookeeper密码:
1. 在Zookeeper服务器上创建一个密码文件,例如```/etc/kafka/zookeeper.password```。
2. 在密码文件中添加用户名和密码。例如,添加以下行:
```
username:password
```
3. 在Zookeeper的配置文件中添加以下属性:
```
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
jaasLoginRenew=3600000
requireClientAuthScheme=sasl
jaasLoginEnabled=true
```
4. 在Kafka Broker的配置文件中,设置以下属性以使用SASL身份验证机制连接Zookeeper:
```
zookeeper.set.acl=true
zookeeper.authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
zookeeper.sasl.client.username=username
zookeeper.sasl.client.password=password
```
请注意,您需要将上面的示例配置中的username和password替换为您为Zookeeper设置的实际用户名和密码。
完成上述步骤后,重启Kafka Broker和Zookeeper服务,并检查日志是否仍然报告身份验证错误。
阅读全文