第 2 章 Kafka 快速入门
2.1 安装部署
2.1.1 集群规划
已安装jdk、zookeeper
master 192168.100.101
slave1 912.168.100.102
slave2 192.168.100.103
2.1.2 jar 包下载
http://kafka.apache.org/downloads.html
wget https://www.apache.org/dyn/closer.cgi?path=/kafka/2.4.1/kafka_2.11-2.4.1.tgz
2.1.3 集群部署
1)解压安装包
tar -zxvf kafka_2.11-0.11.0.0.tgz -C /local/software
2)修改解压后的文件名称
mv kafka_2.11-0.11.0.0/ kafka
3)在/opt/module/kafka 目录下创建 logs 文件夹
mkdir logs
4)修改配置文件
cd /local/software/kafka/config/
vi 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=/local/software/kafka/logs
#topic 在当前 broker 上的分区个数
num.partitions=1
#用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
#segment 文件保留的最长时间,超时将被删除
log.retention.hours=168
#配置连接 Zookeeper 集群地址
zookeeper.connect=master:2181,slave:2181,slave2:2181
5)配置环境变量
vi /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
#重启
source /etc/profile
6)分发kafka
scp -r /local/software/kafka slave1:/local/software
scp -r /local/software/kafka slave2:/local/software
注意:分发之后记得配置其他机器的环境变量
7)分别在 slave1 和 slave2上修改配置文件kafka/config/server.properties
中的 broker.id=1、broker.id=2
注:broker.id 不得重复
8)启动集群
注:前提启动zookeeper
依次在 master、slave1、slave2节点上启动 kafka
前端启动
bin/kafka-server-start.sh config/server.properties
后端
bin/kafka-server-start.sh -daemon config/server.properties
9)关闭集群
bin/kafka-server-stop.sh stop
10)kafka 群起脚本 ,在master操作即可
cd /local/software/kafka/bin
vi kk.sh
添加内容:
#!/bin/bash
case $1 in
"start"){
for i in master slave1 slave2
do
echo "========== $i =========="
ssh $i '/local/software/kafka/bin/kafka-server-start.sh -daemon /local/software/kafka/config/server.properties'
done
};;
"stop"){
for i in master slave1 slave2
do
echo "========== $i =========="
ssh $i '/local/software/kafka/bin/kafka-server-stop.sh'
done
};;
esac
授权
chmod 777 kk.sh
启动:
kk start
关闭:
kk stop
2.2 Kafka 命令行操作
1)查看当前服务器中的所有 topic
bin/kafka-topics.sh --zookeeper master:2181 --list
2)创建 topic
bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 -topic mytopic
选项说明:
–topic 定义 topic 名
–replication-factor 定义副本数
–partitions 定义分区数
3)删除 topic
bin/kafka-topics.sh --zookeeper master:2181 --delete --topic mytopic
4)发送消息
bin/kafka-console-producer.sh --brokerlist master:9092 --topic mytopic
5)消费消息
在另一个窗口
#输入一个看一个
bin/kafka-console-consumer.sh --bootstrap-server master:9092 --topic mytopic
#--from-beginning:会把主题中以往所有的数据都读取出来
bin/kafka-console-consumer.sh --bootstrap-server master:9092 --from-beginning --topic mytopic
6)查看某个 Topic 的详情
bin/kafka-topics.sh --zookeeper master:2181 --describe --topic mytopic
7)修改分区数
bin/kafka-topics.sh --zookeeper master:2181 --alter --topic mytopic --partitions 6
6)查看某个 Topic 的详情
bin/kafka-topics.sh --zookeeper master:2181 --describe --topic mytopic
7)修改分区数
bin/kafka-topics.sh --zookeeper master:2181 --alter --topic mytopic --partitions 6