Kafka部署
部署命令
wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
useradd kafka
yum install java
mkdir /home/kafka/logs
vi /home/kafka/kafka/config/server.properties
/home/kafka/kafka/bin/kafka-server-start.sh -daemon /home/kafka/kafka/config/server.properties
/home/kafka/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server 172.30.30.101:19092
/home/kafka/kafka/logs - 日志路径
server.properties 中zookeeper.connect配置检查
根据您提供的输出信息,Kafka 客户端无法与运行在 localhost:19092
的 Kafka broker 建立连接。这里有几个可能的原因和相应的解决步骤:
-
检查 Kafka Broker 是否正在运行:
确认 Kafka broker 进程是否已经启动并正在监听19092
端口。您可以使用ps -ef | grep kafka-server-start.sh
来查看 Kafka broker 的进程状态。 -
检查端口是否正确:
Kafka 默认监听端口是9092
,除非在server.properties
配置文件中明确指定了其他端口。请检查您的server.properties
文件中的listeners
配置项,确保 Kafka broker 正在监听19092
端口。 -
检查防火墙设置:
如果 Kafka broker 正在运行,但您仍然无法连接,可能是防火墙阻止了对该端口的访问。确保防火墙允许19092
端口的流量。 -
检查网络配置:
如果您的 Kafka broker 配置为监听所有接口或特定的非本地接口,确保您的客户端正在使用正确的主机名或 IP 地址来连接。 -
检查 Kafka 日志:
查看 Kafka broker 的日志文件,通常位于 Kafka 安装目录下的logs
子目录中,以获取可能的错误信息或线索。 -
检查配置文件:
确保server.properties
配置文件中的所有配置项都是正确的,特别是broker.id
、listeners
和log.dirs
等关键配置。 -
重新启动 Kafka Broker:
如果 Kafka broker 没有正确启动,尝试重新启动它。使用/home/kafka/kafka/bin/kafka-server-stop.sh
停止 Kafka broker,然后使用/home/kafka/kafka/bin/kafka-server-start.sh -daemon /home/kafka/kafka/config/server.properties
重新启动。 -
检查 Java 环境:
Kafka 依赖于 Java 运行环境。确保您的系统上安装了正确版本的 Java,并且 Kafka 能够访问它。
通过上述步骤,您应该能够诊断并解决无法连接到 Kafka broker 的问题。如果问题仍然存在,可能需要更详细地检查 Kafka 的配置和系统环境。
java.lang.IllegalArgumentException: A HostProvider may not be empty!
从您提供的 Kafka 日志信息来看,Kafka 服务器在启动过程中遇到了一个致命错误,导致无法启动。错误信息如下:
java.lang.IllegalArgumentException: A HostProvider may not be empty!
这个错误表明 Kafka 在尝试初始化与 ZooKeeper 的连接时,没有找到有效的 ZooKeeper 服务器地址。HostProvider
是用于提供 ZooKeeper 服务器地址列表的,这个错误通常意味着 server.properties
配置文件中的 zookeeper.connect
配置项没有正确设置或者为空。
要解决这个问题,请按照以下步骤操作:
-
检查 ZooKeeper 连接配置:
打开 Kafka 的server.properties
配置文件,确保zookeeper.connect
配置项已经正确设置。例如,如果 ZooKeeper 运行在本地机器的默认端口上,该配置应该如下所示:zookeeper.connect=localhost:2181
如果您的 ZooKeeper 运行在其他机器或端口上,您需要相应地修改这个配置。
-
检查 ZooKeeper 服务状态:
确保 ZooKeeper 服务正在运行,并且 Kafka 服务器能够网络访问到它。您可以通过运行echo stat | nc localhost 2181
来检查 ZooKeeper 的状态(假设 ZooKeeper 运行在本地的默认端口上)。 -
检查网络连接:
如果 ZooKeeper 运行在远程服务器上,确保 Kafka 服务器能够通过网络连接到该服务器的 ZooKeeper 端口。 -
检查防火墙设置:
确保没有防火墙规则阻止了 Kafka 服务器与 ZooKeeper 服务器之间的通信。 -
重新启动 Kafka 服务器:
在修正了配置文件后,重新启动 Kafka 服务器:/home/kafka/kafka/bin/kafka-server-stop.sh /home/kafka/kafka/bin/kafka-server-start.sh -daemon /home/kafka/kafka/config/server.properties
-
查看 Kafka 日志:
如果 Kafka 服务器仍然无法启动,查看 Kafka 日志文件以获取更多错误信息。
通过上述步骤,您应该能够解决 Kafka 服务器无法启动的问题。如果问题依然存在,可能需要进一步检查 Kafka 和 ZooKeeper 的配置及网络环境。