1.安装部署
1.1 集群规划
1.2 jar 包下载
http://kafka.apache.org/downloads
1.3 集群部署
1.解压安装包
cd /opt/software
tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/2.修改解压后的文件名称
cd /opt/module/
mv kafka_2.11-2.4.1/ kafka3.在/opt/module/kafka 目录下创建 logs 文件夹
cd kafka/
mkdir logs4. 修改配置文件
cd config/
vim server.properties修改或者增加以下内容:
broker 的全局唯一编号,不能重复!!!!!!!!!!!!!!!!!
#broker的全局唯一编号,不能重复
broker.id=0
#删除topic功能使能
delete.topic.enable=true
#kafka运行日志存放的路径
log.dirs=/opt/module/kafka/data
#配置连接Zookeeper集群地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka5. 分发文件
cd /opt/module/
xsync kafka/6.修改 broker.id
分别在 hadoop103 和 hadoop104 上修改配置文件/opt/module/kafka/config/server.properties 中的 broker.id = 1、broker.id = 2
注:broker.id 不得重复!!!!!!!!!!
7.配置环境变量
sudo vim /etc/profile.d/my_env.sh #KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/binsource /etc/profile.d/my_env.sh
sudo /home/duan/bin/xsync /etc/profile.d/my_env.sh 分别在 hadoop103、hadoop104 中 resource
1.4 启动集群
依次在hadoop102、hadoop103、hadoop104节点上启动kafka
[duan@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
[duan@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties
[duan@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties1.5 关闭集群
[duan@hadoop102 kafka]$ bin/kafka-server-stop.sh
[duan@hadoop103 kafka]$ bin/kafka-server-stop.sh
[duan@hadoop104 kafka]$ bin/kafka-server-stop.sh1.6 Kafka集群启动停止脚本
1.在/home/atguigu/bin目录下创建脚本kf.sh
cd
cd bin
vim kf.sh脚本内容如下:
#! /bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------启动 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
echo " --------停止 $i Kafka-------"
ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh stop"
done
};;
esac2.增加脚本执行权限
chmod 777 kf.sh3.kf集群启动脚本
kf.sh start4.kf集群停止脚本
kf.sh stop2.Kafka常用命令
1. 查看Kafka Topic列表
[duan@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka --list2.创建Kafka Topic
进入到/opt/module/kafka/目录下创建日志主题
[duan@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka --create --replication-factor 1 --partitions 1 --topic topic_log3.删除Kafka Topic
[duan@hadoop102 kafka]$ bin/kafka-topics.sh --delete --zookeeper hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka --topic topic_log4. Kafka生产消息
[duan@hadoop102 kafka]$ bin/kafka-console-producer.sh \
--broker-list hadoop102:9092 --topic topic_log
\>hello world
\>atguigu atguigu5. Kafka消费消息
[duan@hadoop102 kafka]$ bin/kafka-console-consumer.sh \
--bootstrap-server hadoop102:9092 --from-beginning --topic topic_log--from-beginning:会把主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。
6.查看Kafka Topic详情
[duan@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka \
--describe --topic topic_log3. 项目经验之Kafka机器数量计算
Kafka机器数量(经验公式)= 2 (峰值生产速度 副本数 / 100)+ 1
先拿到峰值生产速度,再根据设定的副本数,就能预估出需要部署Kafka的数量。
1)峰值生产速度
峰值生产速度可以压测得到。
2)副本数
副本数默认是1个,在企业里面2-3个都有,2个居多。
副本多可以提高可靠性,但是会降低网络传输效率。
比如我们的峰值生产速度是50M/s。副本数为2。
Kafka机器数量 = 2 (50 2 / 100)+ 1 = 3台
4.项目经验值Kafka分区数计算
https://blog.csdn.net/weixin_42641909/article/details/89294698