准备
Linux中安装kafka
安装kafka之前需要JDK1.8的环境支持,配置好Java环境变量,同时本地安装zookeeper,大家只要会按就行,实际对zookeeper的操作是Kafka的内部操作,我们可以无需关心。
官网下载Linux压缩包 下载
搭建Kafka
1 )将安装包压缩包移动到Linux中自己的文件夹software
2 )解压并移动到 /usr/local 目录下
tar -zxvf kafka_2.12-3.0.0.tgz
mv rocketmq-all-4.8.0-bin-release /usr/local
3)进入到/usr/local/kafka_2.12-3.0.0/config目录,修改配置文件 server.properties
cd /usr/local/kafka_2.12-3.0.0/config/
vim server.properties
核心配置几个点
# broker 的全局唯一编号,不能重复,只能是数字。 集群搭建就往上加1 一定不能一样
broker.id=0
# 文件数据存储的地方,kafka日志就是数据
log.dirs=/usr/local/kafka_2.12-3.0.0/datas
# 最后就是zookeeper配置,集群用逗号隔开
zookeeper.connect=120.77.xxx.xxx:2181/kafka
# 阿里云用户 listeners 是配置本地访问的,阿里云内网ip地址
listeners=PLAINTEXT://172.xx.x.xx:9092
# 阿里云用户 advertised.listeners是配置远程访问的,阿里云外网(公网)映射地址
advertised.listeners=PLAINTEXT://120.77.xxx.xxx:9092
改完后 wq保存退出
阿里云用户记得开启9092端口
4)配置环境变量 在/etc/profile文件中配置系统环境变量,就是配置HOME
#KAFKA_HOME
export KAFKA_HOME=/usr/local/kafka_2.12-3.0.0/
export PATH=$PATH:$KAFKA_HOME/bin
刷新环境变量 source /etc/profile
5)启动
- 先启动zookeeper,到bin目录 zks
cd /usr/local/zookeeper-3.6.3/bin
执行zkServer.sh start
- 启动kafka ,回到kafka目录
执行 bin/kafka-server-start.sh -daemon config/server.properties
因为kafka服务器也是Java写的,所以jps 可以看到kafka已经启动了
6)关闭kafka命令 bin/kafka-server-stop.sh
注意:停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper
集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止,
Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。
集群启停脚本
如果服务器集群不多,用以上方法就可以完成Kafka 的启动和关闭操作,但如果你集群数量多,想一键启动或关闭所有服务器的kafka。
1)在你经常用的目录下创建文件 kf.sh 脚本文件
vim kf.sh
脚本如下:
#! /bin/bash
case $1 in
"start"){
for i in 120.77.xxx.xx1 120.77.xxx.xx2 120.77.xxx.xx3
do
echo " --------启动 $i Kafka-------"
ssh $i "/usr/local/kafka_2.12-3.0.0/bin/kafka-server-start.sh -daemon /usr/local/kafka_2.12-3.0.0/config/server.properties"
done
};;
"stop"){
for i in 120.77.xxx.xx1 120.77.xxx.xx2 120.77.xxx.xx3
do
echo " --------停止 $i Kafka-------"
ssh $i "/usr/local/kafka_2.12-3.0.0/bin/kafka-server-stop.sh "
done
};;
esac
2)添加执行权限
chmod 777 kf.sh
3)启动集群命令
kf.sh start
4)停止集群命令
kf.sh stop