kafka安装

kafka安装配置

1. 下载并解压kafka

kafka可以通过官网下载:https://kafka.apache.org/downloads
使用tar -xzvf kafka_2.12-2.8.0.tgz 解压

2. 安装并启动zookeeper

解压zookeeper并在conf中修改zookeeper的配置文件
在conf中执行:cat zoo_sample.cfg|grep -v ^'#'|grep -v ^'$' > zoo.cfg
修改zoo.cfg文件 vim zoo.cfg
#Zookeeper 服务器之间或客户端与服务器之间心跳的时间间隔
tickTime=2000
initLimit=10
syncLimit=5
#Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里
dataDir=/kht/zookeeper/data
#Zookeeper 服务器监听端口,用来接受客户端的访问请求
clientPort=2181
启动 ./zkServer.sh stop

3. 修改kafka的配置文件

复制备份kafka的配置文件
cp server.properties server.properties2021
清空配置文件的注释
cat server.properties2021|grep -v ^'$'|grep -v ^'#' >server.properties
vim server.properties
#默认端口号
port=9092
#broker的全局唯一编号,不能重复
broker.id=0
#处理网络请求的线程数量
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消息存放的路径
log.dirs=/kht/kafka/logs(data,日志文件logs会自动创建)
#topic在当前broker上的分片个数
num.partitions=1
#用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
#segment文件保留的最长时间,超时将被删除
log.retention.hours=168
#滚动生成新的segment文件的最大时间
log.roll.hours=168
#日志清理是否打开
log.cleaner.enable=true
#日志文件中每个segment的大小,默认为1G
log.segment.bytes=1073741824
#周期性检查文件大小的时间
log.retention.check.interval.ms=300000
#zookeeper连接地址及端口
zookeeper.connect=127.0.0.1:2181
#配置连接 Zookeeper 集群地址
#zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181
#zookeeper链接超时时间
zookeeper.connection.timeout.ms=18000
#以下配置指定GroupCoordinator将延迟初始消费者重新平衡的时间(以毫秒为单位),官方推荐成3
group.initial.rebalance.delay.ms=0
#partion buffer中,消息的条数达到阈值,将触发flush到磁盘
log.flush.interval.messages=10000
#消息buffer的时间,达到阈值,将触发flush到磁盘
log.flush.interval.ms=3000
#删除topic需要server.properties中设置delete.topic.enable=true否则只是标记删除
delete.topic.enable=true
#请求的最大大小为字节。要小于 message.max.bytes默认值1M,这里设置的5M
message.max.bytes=5242880
#broker可复制的消息的最大字节数(每个分区试图获取的消息字节数)。这个值应该比message.max.bytes大,否则broker会接收此消息,但无法将此消息复制出去,从而造成数据丢失。默认值1M,这里设置为6M。
replica.fetch.max.bytes=6291456

4. 启动

在zookeeper启动的基础下启动kafka
在bin目录下执行命令:./kafka-server-start.sh ../config/server.properties
后台启动命令: ./kafka-server-start.sh -daemon ../config/server.properties

5. 测试

#创建topic
bin/kafka-topics.sh --create --zookeeper 192.168.2.129:2181 --replication-factor 1 --partitions 1 --topic test
--create:创建主题的动作指令
--zookeeper:指定kafka所连接的zookeeper服务地址
--replicaton-factor:指定了副本因子
--partitions:指定了分区个数
--topic:指定了所要创建主题的名称

#查看主题
bin/kafka-topics.sh --list --zookeeper 192.168.2.129:2181

#发送消息
bin/kafka-console-producer.sh --broker-list 192.168.2.129:9092 --topic test

#接收消息
bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.129:9092 --topic test --from-beginning

#查看特定主题的详细信息
bin/kafka-topics.sh --zookeeper localhost:2181 --describe  --topic test
#删除主题
bin/kafka-topics.sh --zookeeper localhost:2181 --delete  --topic test

集群启动

cd kafka1
./bin/kafka-server-start.sh -daemon config/server.properties
cd ..
cd kafka2
./bin/kafka-server-start.sh -daemon config/server.properties
cd ..
cd kafka3
./bin/kafka-server-start.sh -daemon config/server.properties
cd ..

集群关闭(速度较慢)

cd kafka1
./bin/kafka-server-stop.sh -daemon config/server.properties
cd ..
cd kafka2
./bin/kafka-server-stop.sh -daemon config/server.properties
cd ..
cd kafka3
./bin/kafka-server-stop.sh -daemon config/server.properties
cd ..

5.数据日志分离

1.关闭zookeeper,并清空日志,清空data/version-2的文件
2.关闭kafka,清空kafka/logs下的所有文件,并新建data文件夹
3.修改kafka的配置文件,将log.dirs=/kht/kafka/logs改为log.dirs=/kht/kafka/data
4.重启zookeeper和kafka
5.创建主题测试
posted @ 2021-09-02 11:19  kht  阅读(55)  评论(0编辑  收藏  举报