三、部署kafka+zookeeper集群

kafka需要jdk环境,参考第二章的elasticsearch集群的jdk安装,也可以自行安装,我这边都在相同的3台机器,所以就不用在安装jdk了

1、下载安装包并解压

kafka用的是2.3.0,zookeeper用的是3.6.0

wget https://www.dogfei.cn/pkgs/kafka_2.12-2.3.0.tgz
wget https://www.dogfei.cn/pkgs/apache-zookeeper-3.6.0-bin.tar.gz

tar zxvf kafka_2.12-2.3.0.tgz -C /usr/local/
tar zxvf apache-zookeeper-3.6.0-bin.tar.gz -C /usr/local/
chown tomcat:tomcat -R /usr/local/apache-zookeeper-3.6.0-bin
chown tomcat:tomcat -R /usr/local/kafka_2.12-2.3.0

2、部署zookeeper集群

创建目录,修改配置文件

  #mkdir /data0/zookeeper/{data,logs}  -p
  #chown tomcat:tomcat -R /data0/zookeeper/{data,logs}
  #cat /usr/local/apache-zookeeper-3.6.0-bin/conf/zoo.cfg | grep -v -E "^#|^$"
  tickTime=10000
  initLimit=10
  syncLimit=5
  dataDir=/data0/zookeeper/data
  clientPort=2181
  admin.serverPort=8888 #管理端口避免冲突改了一下
  server.1=192.168.1.10:2888:3888 #单机伪集群区分下clientPort端口就好,单机版不用写server
  server.2=192.168.1.11:2888:3888
  server.3=192.168.1.12:2888:3888

加入systemd

# cat /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=zookeeper.service
After=network.target

[Service]
Type=forking
Environment=ZOO_LOG_DIR=/data0/zookeeper/logs
ExecStart=/usr/local/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start
ExecStop=/usr/local/apache-zookeeper-3.6.0-bin/bin/zkServer.sh stop
Restart=always

[Install]
WantedBy=multi-user.target

启动服务并开机自启

 

systemctl daemon-reload
systemctl start zookeeper
systemctl enable zookeeper

 

2、部署kafka集群

 
#mkdir /data0/kafka/{data,logs} -p
#chown tomcat:tomcat -R /data0/kafka/{data,logs}
#cat  /usr/local/kafka_2.12-2.3.0/config/server.properties | grep -v -E  "^#|^$"
broker.id=1       #broker.id不能相同,可以按循序写1,2345.....
listeners=PLAINTEXT://192.168.1.10:9092    #这里写本机ip
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
log.dirs=/data0/kafka/data
num.partitions=8
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
message.max.bytes=20971520
log.retention.hours=1
log.retention.bytes=1073741824
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181
zookeeper.connection.timeout.ms=1000000
zookeeper.sync.time.ms=2000
group.initial.rebalance.delay.ms=0
log.cleaner.enable=true
delete.topic.enable=true

加入systemd

# cat /usr/lib/systemd/system/kafka.service
[Unit]
Description=Kafka
After=zookeeper.service

[Service]
Type=simple
Environment=LOG_DIR=/data0/kafka/logs
WorkingDirectory=/usr/local/kafka_2.12-2.3.0
ExecStart=/usr/local/kafka_2.12-2.3.0/bin/kafka-server-start.sh /usr/local/kafka_2.12-2.3.0/config/server.properties
ExecStop=/usr/local/kafka_2.12-2.3.0/bin/kafka-server-stop.sh
Restart=always
User=tomcat
Group=tomcat [Install] WantedBy
=multi-user.target

启动服务并开机自启

systemctl daemon-reload
systemctl start kafka
systemctl enable kafka

 

到此,kafka+zookeeper集群就部署完成了。