Kafka安装与部署

1.安装部署 1.1 集群规划

1.安装部署

1.1 集群规划

hadoop102

hadoop103

hadoop104

zk

zk

zk

kafka

kafka

kafka

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/ kafka
3.在/opt/module/kafka 目录下创建 logs 文件夹
 cd kafka/
 mkdir logs
4. 修改配置文件
 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/kafka
5. 分发文件
 cd /opt/module/
 xsync kafka/
6.修改 broker.id

分别在 hadoop103hadoop104 上修改配置文件/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/bin
source /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.properties

1.5 关闭集群

[duan@hadoop102 kafka]$ bin/kafka-server-stop.sh
[duan@hadoop103 kafka]$ bin/kafka-server-stop.sh
[duan@hadoop104 kafka]$ bin/kafka-server-stop.sh

1.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
};;
esac
2.增加脚本执行权限
chmod 777 kf.sh
3.kf集群启动脚本
 kf.sh start
4.kf集群停止脚本
kf.sh stop

2.Kafka常用命令

1. 查看Kafka Topic列表

[duan@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka --list

2.创建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_log

3.删除Kafka Topic

[duan@hadoop102 kafka]$ bin/kafka-topics.sh --delete --zookeeper hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka --topic topic_log

4. Kafka生产消息

[duan@hadoop102 kafka]$ bin/kafka-console-producer.sh \
--broker-list hadoop102:9092 --topic topic_log
\>hello world
\>atguigu atguigu

5. 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_log

3. 项目经验之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

Comment