前言
Apache Kafka 是一种高吞吐量的分布式发布订阅消息系统,它能够处理大量的数据流,并且被广泛应用于日志收集、监控报告、流处理等多种场景中。本文详细介绍了kafka单节点以及集群的安装
一、kafka单节点安装
kafka需要java环境
所以需要用java -version检查Java版本 推荐8以上版本,详情可以关注
https://blog.csdn.net/moxiaotian0510/article/details/144057974
1)下载
这边可以选择直接去官网下载
Apache Kafka
也可以选择下载到本地然后上传到服务器
或者选择用weget命令下载
2)安装
笔者用的是下载到本地然后上传服务器的方式
将kafka_2.12-3.8.0.tgz上传到/u01目录
解压安装包
tar -zxvf kafka_2.12-3.8.0.tgz
mv kafka_2.12-3.8.0 kafka
kafka建议规划单独用户安装我们这里规划为kafka用户
groupadd -g 555 kafka
useradd -u 555 -g kafka kafka
在kafka用户的~目录修改配置环境变量
vi .bashrc
#kafka
export KAFKA_HOME=/u01/kafka
export PATH=$PATH:$KAFKA_HOME/bin
vi /u01/kafka/config/server.properties
基本设置
broker.id=0 # 单节点环境通常使用 0 作为 broker id
监听地址和端口
listeners=PLAINTEXT://localhost:9092 # Kafka 服务监听的地址和端口
advertised.listeners=PLAINTEXT://localhost:9092 # 广告的监听地址和端口,如果 Kafka 在网络上被其他机器访问,这里需要改成相应的 IP 地址存储设置
log.dirs=/u01/kafka/kafka-logs # 日志文件存放路径
num.partitions=1 # 每个主题默认的分区数量,可以根据需要调整
log.retention.hours=168 # 日志保留时间(小时),这里设置为一周
log.segment.bytes=1073741824 # 日志段大小(字节),默认 1GBZookeeper 设置
zookeeper.connect=localhost:2181 # Zookeeper 连接字符串,如果不需要 Zookeeper 支持,可以注释掉此行
网络设置
socket.send.buffer.bytes=102400 # 发送缓冲区大小
socket.receive.buffer.bytes=102400 # 接收缓冲区大小
socket.request.max.bytes=104857600 # 请求的最大大小控制器设置
controller.socket.timeout.ms=30000 # 控制器连接超时时间(毫秒)
日志清理策略
log.cleaner.enable=false # 是否启用日志清理器,默认关闭
消费者组相关
group.initial.rebalance.delay.ms=0 # 初始消费者组再平衡延迟时间(毫秒)
安全认证(如果需要开启安全认证,取消注释并配置)
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
super.users=User:kafka
以上主要是单机模式安装,因此配置文件保持默认,不进行编辑配置。默认的Zookeeper端口是2181,默认的Kafka端口是9092
zookeeper 我们连接本机安装的zookeeper 不用kafka包含的zookeeper 具体安装zookeeper可以看主页zookeeper安装
3)启动
因为配置了环境变量所以可以用以下命令进行启动
./bin/kafka-server-start.sh -daemon config/server.properties &
当然也可以编写一个启动脚本,限制只能用kafka用户启动,防止root误启动
#!/bin/bash
if [ `whoami` != kafka ];then
echo 'Only gcc is permitted to excute!'
exit 1
fi
./bin/kafka-server-start.sh -daemon config/server.properties &
二、kafka集群安装
集群安装与的单节点安装不同的地方主要体现在配置文件,不同的节点要修改不同的节点id和节点主机名称
broker.id=
1
(节点id)
delete.topic.enable=
true
auto.create.topics.enable=
false
不允许⾃动创建 Topic
unclean.leader.election.enable=
false
不允许 Unclean Leader 选举
listeners=PLAINTEXT://192.168.0.1:9092 (监听端口号)
advertised.listeners=PLAINTEXT:
//10.0.8.101:9092 (对外服务端口号)
log.dirs=/dsj2017/kafka_2.
11
-
0.10
.
1.1
/logs (日志路径)
num.partitions=
6
(分多少块存储)
zookeeper.connect=192.168.0.1
:
2181
,192.168.0.2:
2181
,192.168.0.3:
2181
,192.168.0.4:
2181
,192.168.0.5:
2181
(zookeeper集群地址)
replica.fetch.max.bytes=
20971520
(broker可复制的消息的最大字节数。这个值应该比message.max.bytes大,否则broker会接收此消息,但无法将此消息复制出去,从而造成数据丢失)
offsets.retention.minutes=
10080
(针对一个offset的消费记录的最长保留时间,默认为
24
小时,这里配置
7
天)
同时修改kafka运行内存大小
vi ./bin/kafka-server-start.sh
修改内存参数
export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
export JMX_PORT="9999"
其余操作均可参考单节点安装
至此集群安装完毕
版权归原作者 skoutain 所有, 如有侵权,请联系我们删除。