1.简介
2.架构
3.安装
主机名 | hadoop100 | hadoop101 | hadoop102 |
---|---|---|---|
IP | 192.168.100.100 | 192.168.100.101 | 192.168.100.102 |
部署服务 | jdk8 | jdk8 | jdk8 |
部署服务 | zk Server | zk Server | zk Server |
部署服务 | kafka | kafka | kafka |
解压
tar -zxvf kafka_2.12-2.8.0.tgz -C /opt/software
修改目录名称
cd /opt/software
mv kafka_2.12-2.8.0 kafka
创建启动配置文件 ps:自己创建或者修改 (vim config/server.properties)
touch /opt/software/kafka/config/kafka.properties
创建数据文件目录
mkdir -p /opt/software/kafka/data
vim /opt/software/kafka/config/kafka.properties
配置内容
# 当前kafka对外提供服务的端口默认是9092
port=9092
# 每个机器需要对应修改
host.name=hadoop100
# 每个机器需要对应修改 broker的全局唯一编号,不能重复
broker.id=100
# 开启删除 topic 功能,默认为标记删除
delete.topic.enable=true
# 处理网络请求的线程数量
num.network.threads=3
# 用来处理磁盘 IO 的现成数量
num.io.threads=8
# 发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
# 接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
# 请求套接字的缓冲区大小
socket.request.max.bytes=104857600
# kafka 运行日志存放的路径,默认日志路径为 logs,这里和默认日志数据分开存放
log.dirs=/opt/software/kafka/data
# topic 在当前 broker 上的分区个数
num.partitions=1
# 用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
# segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
# 配置连接 Zookeeper 集群地址
zookeeper.connect=hadoop100:2181,hadoop101:2181,hadoop102:2181/kafka
分发到另外两台机器,并修改对应host.name和broker.id
scp -r /opt/software/kafka hadoop101:/opt/software/
scp -r /opt/software/kafka hadoop102:/opt/software/
(所有机器)添加环境变量
vim /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/software/kafka
export PATH=$PATH:$KAFKA_HOME/bin
同步环境变量
rsync /etc/profile
环境变量生效
/opt/script/all.sh "source /etc/profile "
先确保已经启动zookeeper集群,操作参照zookeeper集群搭建
创建启停脚本
vim /opt/script/kafka.sh
#!/bin/bash
kafka_start(){
for i in hadoop100 hadoop101 hadoop102
do
echo "****************** $i start*********************"
ssh $i "source /etc/profile && /opt/software/kafka/bin/kafka-server-start.sh -daemon /opt/software/kafka/config/kafka.properties"
done
}
kafka_stop(){
for i in hadoop100 hadoop101 hadoop102
do
echo "========== $i stop=========="
ssh $i "/opt/software/kafka/bin/kafka-server-stop.sh stop"
done
}
case $1 in
"start"){
kafka_start
};;
"stop"){
kafka_stop
};;
"restart"){
kafka_stop
sleep 1
kafka_start
};;
*){
echo "[ERROR-输入参数错误]:请输入start|stop|restart"
};;
esac
修改为执行文件
chmod 777 /opt/script/kafka.sh
验证
jps 三台都有kafka进程