准备工作:虚拟机三台(192.168.22.74,192.168.22.42,192.168.22.31), ubuntu 18.04 系统
两个安装包:
第一步安装 java
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
export ZOOKEEPER_HOME=/home/jack/jack/apache-zookeeper-3.6.0
export PATH=$PATH:$ZOOKEEPER_HOME/bin
export KAFKA_HOME=/home/jack/jack/kafka_2.12-2.4.1
export PATH=$PATH:$KAFKA_HOME/bin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=./://$JAVA_HOME/lib:$JRE_HOME/lib
# java 安装地址 如果找不到
# which java
#ll /usr/bin/java 出现一条链接 (/etc/alternatives/java)
# ll /etc/alternatives/java
# /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 为最终安装地址
最后 执行source /etc/profile 使之生效
第四步 修改 kafka的server配置文件
kafka_2.12-2.4.1/config/server.properties
broker.id=1 三台broker 我设置的id 为 1,2,3
listeners = PLAINTEXT://192.168.22.74:9092 # 这里 我开始没写ip 会出现有些分区写不到其他broker去。
zookeeper.connect=broker1:2181,broker2:2181,broker3:2181/kafka 后面的kafka是个chroot。broker1,2,3 会在/etc/hosts 里面配置。
delete.topic.enable=true
auto.create.topics.enable=false
auto.leader.rebalance.enable=false
unclean.leader.election.enable=false
第五步 修改hosts
vim /etc/hosts
加入以下内容:
192.168.22.74 broker1
192.168.22.42 broker2
192.168.22.31 broker3
第六步 配置 zookeeper
apache-zookeeper-3.6.0/conf
复制一份配置文件
cp zoo_sample.cfg zoo.cfg
配置大致如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
clientPort=2181
server.1=192.168.22.74:2888:3888
server.2=192.168.22.42:2888:3888
server.3=192.168.22.31:2888:3888
在 dataDir 配置的位置下面 建立 myid 文件
里面写上相应的brokerid 74 这台我写的1
第七步 启动zookeeper
zkServer.sh start
zkServer.sh status
出现上面内容 就证明启动成功了。分别在三台都启动一下
如果出现错误 查看错误日志:
tail apache-zookeeper-3.6.0-bin/logs/zookeeper-broker2-server-ubuntu.out
第八步 启动kafka
cd kafka_2.12-2.4.1
bin/kafka-server-start.sh -daemon config/server.properties
如果出现问题 查看
kafka_2.12-2.4.1/logs 下的server.log
多半是myid的内容不对,或者listeners 配置有问题。
验证是否启动了使用 jps -l
能看到这几个服务 就算启动成功了。
遇到的问题:
The Cluster ID xxxx doesn't match stored clusterId Some aaaaa
因为一台机器broker的meta.properties 跟其他的对不上
在/tmp/kafka-logs/meta.properties这里面修改一下
cluster.id=xxxxxx 这里改成日志里面的aaaa
version=0
broker.id=1
再有其他的就百度解决,有很多小问题就不写出来了。
备忘。