Kafka下载
官网下载 :http://kafka.apache.org/downloads
百度云:https://pan.baidu.com/s/18ZGL22-D3LqH4HaBbflzOQ(版本:kafka_2.12-2.8.0)
提取码:5030
ps:kafka名中的2.12是Scala语言版本,后面的2.8.0是kafka版本,端口默认为9092。
Kafka安装
解压kafak
tar -zxvf kafka_2.12-2.8.0.tgz
重新命名解压文件为kafka
mv kafka_2.12-2.8.0 kafka
进入到config目录,编辑配置文件:server.properties,可删除原来的所有内容,添加以下内容
#broker 的全局唯一编号,不能重复
broker.id=0
#删除 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 运行日志存放的路径
log.dirs=/usr/local/kafka/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=192.168.238.100:2181,192.168.238.101:2181,192.168.238.102:2181
详细参数: https://blog.csdn.net/wackycrazy/article/details/47810741
分发Kafka
利用scp命令发送至其他机器上
scp -r /usr/local/kafka/ root@IP:/usr/local/
依次修改其他机器上面的broker.id
配置Kafka环境变量
为了能够在任意目录启动kafka,我们需要配置环境变量,所有安装kafka的机器都需配置。
#KAFKA_2.12-2.8.0
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$KAFKA_HOME/bin
启动关闭Kafka集群
启动kafka之前确保zookeeper启动正常 zookeeper集群安装
启动Kafka -daemon:以后台方式启动
kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
三个节点均要启动;启动无报错,即搭建成功。
停止Kafka
kafka-server-stop.sh stop
为了方便启动或者停止Kafka集群,可以使用shell脚本来操作
vi kafka-all.sh
#!/bin/bash
case $1 in
"start"){
for i in master slave1 slave2
do
ssh $i "kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties"
echo "********************$i 启动Kafka成功************************
done
};;
"stop"){
for i in master slave1 slave2
do
ssh $i "kafka-server-stop.sh
echo "********************$i 关闭Kafka成功************************
done
};;
esac
Kafka常用命令行
//停止Kafka
kafka-server-stop.sh stop
//启动一个消费者 --from-beginning:从头开始消费
kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9092,slave2:9092 --from-beginning --topic first
//启动一个生产者
kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic first
//删除topic
kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --delete --topic first
//查看topic列表
kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --list
//创建topic --replication-factor:定义副本数 --partitions:定义分区数 --topic:定义主题名
kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --create --replication-factor 3 --partitions 2 --topic first
//查看某个 Topic 的详情
kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --describe --topic first
//修改分区数
kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --alter --topic first --partitions 6