Kafka3:Kafka安装

Kafka3:Kafka安装

1. 前置需求

1.1 环境需求

  • Java环境
  • zookeeper
    • 可以使用Kafka自带的zk
    • 也可以使用

1.1.1 安装java

# 安装Java环境 apt install openjdk-17-jre-headless # 查看java版本 java -version
 

1.1.2 安装zookeeper

参考:

2. 下载Kafka

2.1 官网下载

  • 我这里下载的版本:kafka_2.13-3.1.0.tgz
  • 分发到三台服务器
  • 2.8.0及以后版本 可以替换zookeeper
# 分发给redis02,redis03机器上 root@redis01:/usr/local# xsync kafka_2.13-3.1.0.tgz

2.2 解压

# 三台机器分别解压文件 root@redis01:/usr/local# tar -zxvf kafka_2.13-3.1.0.tgz # 重命名 root@redis01:/usr/local# mv kafka_2.13-3.1.0 kafka
 

2.3 集群规划

主机名
服务器IP
角色
端口号
redis01
192.168.92.145
leader
2181
redis02
192.168.92.146
follower
2181
redis03
192.168.92.147
follower
2181
redis04
192.168.92.147

3. 修改配置信息

  • 在每个服务器上面都有相同的配置,只不过broker.id和host.name不同,根据当前服务器节点来修改。
  • config/server.properties
vim /usr/local/kafka/config/server.properties
  • 三个参数
# 每台机器需要改为不同的0,1,2,我这里机器reidis01为0,redis02为1,redis03为2 broker.id = 0 # kafka 日志目录 log.dirs = /usr/local/kafka/datas # zookeeper的连接,(zookeeper目录树方式) # zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka zookeeper.connect=192.168.92.145:2181,192.168.92.146:2181,192.168.92.147:2181/kafka

4. 配置环境变量

sudo vim /etc/profile.d/my_env.sh
  • 配置my-env.sh
# KAFKA export KAFKA_HOME=/usr/local/kafka export PATH=$PATH:$KAFKA_HOME/bin
  • 使配置生效
source /etc/profile
  • 分发配置各台机器redis02,redis03
# 分发给每台机器 xsync /etc/profile.d/my_env.sh # 每台机器都需要运行,使配置生效 source /etc/profile

5. 启动Kafka

  • 必须先启动zookeeper集群
# 每台机器都需要启动 root@redis01:/usr/local/kafka# bin/kafka-server-start.sh -daemon config/server.properties
 
5.2 查看启动
# 使用jps查看 jps # 如果没有,安装jps apt install openjdk-17-jdk-headless
notion image

6. 集群启动停止脚本

 
  • 在目录下创建启动脚本

6.1 创建脚本

# 在目录下创建脚本 root@redis01:# cd /home/bigdata/bin/
  • 写入脚本内容
#!/bin/bash case $1 in "start"){ for i in redis01 redis02 redis03 do echo ------------ kafka $i 启动 ---------- ssh $i "/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties" done };; "stop"){ for i in redis01 redis02 redis03 do echo ------------ kafka $i 停止 ---------- ssh $i "/usr/local/kafka/bin/kafka-server-stop.sh" done };; esac

6.2 赋予权限

# 赋予权限 root@redis01:/home/bigdata/bin# chmod 777 kf.sh
 

6.3 使用脚本

# 开启kafka集群 root@redis01:/home/bigdata/bin# ./kf.sh start # 停止kafka集群 root@redis01:/home/bigdata/bin# ./kf.sh stop
notion image
 

7. jps脚本

  • root@redis01:/usr/local/bin#
root@redis01:/usr/local/bin# touch xcall root@redis01:/usr/local/bin# vim xcall
  • xcall.sh内容
#!/bin/bash for host in redis01 redis02 redis03 do echo =============== $host =============== ssh $host jps done
  • 配置权限
# 赋予权限 root@redis01:/usr/local/bin# chmod 777 xcall
  • 使用
xcall
 
 

8. 启动集群

8.1 zookeeper集群

# 启动zookeeper集群 root@redis01:/home/bigdata/bin# ./zk1.sh start # 查看集群 root@redis01:/home/bigdata/bin# ./zk1.sh status # 停止集群 root@redis01:/home/bigdata/bin# ./zk1.sh stop # 任意位置启动、停止、查看 /home/bigdata/bin/zk1.sh start /home/bigdata/bin/zk1.sh status /home/bigdata/bin/zk1.sh stop
 
  • 连接访问zookeeper集群
# 在安装/usr/local/zookeeper/bin目录下启动 ./zkCli.sh -server 192.168.92.145:2181,192.168.92.146:2181,192.168.92.147:2181

8.2 Kafka集群

# 开启kafka集群 root@redis01:/home/bigdata/bin# ./kf.sh start # 停止kafka集群 root@redis01:/home/bigdata/bin# ./kf.sh stop # 任意位置启动、停止 /home/bigdata/bin/kf.sh start /home/bigdata/bin/kf.sh stop
 

注意

  • 先启动zookeeper,后启动kafka
  • 先关闭Kafka,后关闭zookeeper
停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper集群。因为 Z ookeeper 集群当中记录着 Kafka 集群相关信息, Zookeeper 集群一旦先停止,Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。