首先说一下我集群部署的步骤

1.在线下载安装包

wget  https://archive.apache.org/dist/kafka/2.1.0/kafka_2.12-2.1.0.tgz

解压到opt目录下

tar -zxf kafka_2.12-2.1.0.tgz -C /opt

修改conf下的server.properties,更改日志存放位置,并创建对应文件夹

log.dirs=/opt/data
#因为zookeeper相当于目录树存储,需要在最后创建kafka目录,防止打散到zookeeper集群里,不利于管理
zookeeper.connect= 192.168.6.100:2181,192.168.6.101:2181,192.168.6.102:2181/kafka

配置环境变量

vim /etc/profile

export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin

从新加载环境变量

source /etc/profile

然后我直接复制了2份虚拟机作为集群,修改conf下的server.properties中的broker.id,因为之前配置了固定ip,在修改固定IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

启动kafka之前必须先启动zookeeper,关闭zookeeper之前,一定要先关闭Kafka

zookeeper启动后输入命令启动kafka

bin/kafka-server-start.sh -daemon config/server.properties

 结果在这里我输入完命令后,命令行没反应

输入jps查看软件启动情况,发现Kafka没有启动(安装jps命令)

yum install java-1.8.0-openjdk-devel.x86_64

这时候可以查看一下日志

tail -n50 -f /opt/kafka_2.12-2.1.1/nohup.out

日志提示

kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING
    at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:268)

提示连接超时,在网上搜没找到对应的解决办法,此时突然想到zookeeper是不是没启动成功 

查看zookeeper状态,进入zookeeper文件下

bin/zkServer.sh status

发现果然zookeeper没运行成功,查看zookeeper日志

./zkServer.sh start-foreground

提示找不到绑定映射对应端口,但是之前ip已经改了,首先想到的是端口有没有被占用

netstat -anp | grep 端口号

关闭端口进程kill -9 端口号

发现端口号没有被占用,想到host映射没有配置,导致映射失败

查看/etc/hosts文件中记录了IP地址及其对应的主机名,发现映射ip与固定ip果然不一样,修改hosts映射文件中ip

再次输入启动命令,zookeeper果然启动成功,在启动kafka,输入jps发现已经启动成功

关闭kafka命令

bin/kafka-server-stop.sh

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐