centos7安装部署kafka_2.13-2.4.1集群
需要三台linux服务器,此安装手册以centos7为例,假设这三台服务器主机ip为10.20.31.116,10.20.31.117,10.20.31.137:
1. 系统需求
JDK版本:jdk1.8
Zookeeper版本:zookeeper-3.5.8
Kafka版本:kafka_2.13-2.4.1
注意:防火墙端口开放
2. 集群搭建
2.1 集群jdk1.8.x环境搭建(集群所有节点都需要配置)
2.1.1 官方下载jdk,并上传到服务器/opt目录下,此文档下载文件为jdk1.8.0_101.tar
2.1.2 解压jdk压缩文件
cd /opt/ && tar -zxvf jdk1.8.0_101.tar.gz
2.1.3 配置系统环境变量
vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_101 export PATH=$JAVA_HOME/bin:$PATH
编辑后保存并退出 :wq
2.1.4 使配置文件生效
source /etc/profile
2.1.5 查看java版本
java -version
2.2 zookeeper集群环境搭建(集群所有节点都需要配置)
2.2.1 下载并解压
官方地址:https://www.apache.org/dyn/closer.cgi/zookeeper/
下载版本3.5.8 :
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
解压 cd /opt/ && tar -zxvf apache-zookeeper-3.5.8-bin.tar.gz
2.2.2 创建data、log存储目录
mkdir -p /data/zookeeper/data mkdir -p /data/zookeeper/log
2.2.3 新增zoo.cfg配置文件
cd apache-zookeeper-3.5.8-bin./conf/ && vi zoo.cfg
# 基本事件单元,单位毫秒。 tickTime=2000 initLimit=10 syncLimit=5 # 存储内存中数据库快照的位置,默认是/tmp/zookeeper dataDir=/data/zookeeper/data # 日志路径,也就是事务日志。 dataLogDir=/data/zookeeper/log # 监听客户端连接的端口 clientPort=2181 server.1=10.20.31.116:2888:3888 server.2=10.20.31.117:2888:3888 server.3=10.20.31.137:2888:3888
2.2.4 新增myid文件
myid文件内容是当前服务器的编号。
10.20.31.116: echo '1' > /data/zookeeper/data/myid 10.20.31.117: echo '2' > /data/zookeeper/data/myid 10.20.31.137: echo '3' > /data/zookeeper/data/myid
2.2.5 启动Zookeeper集群
10.20.31.116:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start
10.20.31.117:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start
10.20.31.137:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh start
2.2.6 查看Zookeeper集群状态
10.20.31.116:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status
10.20.31.117:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status
10.20.31.137:/opt/apache-zookeeper-3.5.8-bin/bin/zkServer.sh status
2.3 kafka集群环境搭建(集群所有节点都需要配置)
2.3.1 下载并解压
下载版本2.4.1:
http://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.13-2.4.1.tgz
解压:cd /opt/ && tar -zxvf kafka_2.13-2.4.1.tgz
2.3.2 编辑配置文件:
10.20.31.116:
vi kafka_2.13-2.4.1/config/server.properties
#修改以下配置 #为方便,直接将broker.id设置为了ip的最后一段,当集群中有多个Kafka时,他们的这个值必须不一样 broker.id=116 #可选配置项,将日志输出到指定的位置 log.dirs=/tmp/kafka-logs #必须配置自己的zookeepe zookeeper.connect=10.20.31.116:2181,10.20.31.117:2181,10.20.31.137:2181 #在配置集群的时候,必须设置 listeners = PLAINTEXT://10.20.31.116:9092
10.20.31.117:
vi kafka_2.13-2.4.1/config/server.properties
#修改以下配置 #为方便,直接将broker.id设置为了ip的最后一段,当集群中有多个Kafka时,他们的这个值必须不一样 broker.id=117 #可选配置项,将日志输出到指定的位置 log.dirs=/tmp/kafka-logs #必须配置自己的zookeepe zookeeper.connect=10.20.31.116:2181,10.20.31.117:2181,10.20.31.137:2181 #在配置集群的时候,必须设置 listeners = PLAINTEXT://10.20.31.117:9092
10.20.31.137:
vi kafka_2.13-2.4.1/config/server.properties
#修改以下配置 #为方便,直接将broker.id设置为了ip的最后一段,当集群中有多个Kafka时,他们的这个值必须不一样 broker.id=137 #可选配置项,将日志输出到指定的位置 log.dirs=/tmp/kafka-logs #必须配置自己的zookeepe zookeeper.connect=10.20.31.116:2181,10.20.31.117:2181,10.20.31.137:2181 #在配置集群的时候,必须设置 listeners = PLAINTEXT://10.20.31.137:9092
注意:如果是配置集群,下面信息必须修改:
(1)、broker.id:同一个集群中,每台机器均不能一样
(2)、zookeeper.connect:因为我有3台zookeeper服务器,所以在这里zookeeper.connect设置为3台,必须全部加进去
(3)、listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误
2.3.3 集群各节点启动kafka服务
/opt/kafka_2.13-2.4.1/bin/kafka-server-start.sh -daemon /opt/kafka_2.13-2.4.1/config/server.properties
2.3.4 查看集群中各个节点的服务的启动状态
2.3.5 操作kafka
/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --create --zookeeper 10.20.31.116:2181 --replication-factor 1 --partitions 1 --topic test
说明:
--zookeeper:为zk服务器地址,已逗号分割配置多个
--replication-factor:分区leader副本数,1代表没有副本即分区本身,建议为2
--partitions:分区数
--topic:topic名称
2.3.6 查看topic
/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --list --zookeeper 10.20.31.137:2181
2.3.7 查看test topic消息
/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --describe --zookeeper 10.20.31.117:2181 --topic test
说明:
leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
Replicas:列出了所有的副本节点,不管节点是否在服务中.
Lsr:是正在服务中的节点.
2.3.8 发布消息
/opt/kafka_2.13-2.4.1/bin/kafka-console-producer.sh --broker-list 10.20.31.117:9092 --topic test
2.3.9 消费消息
/opt/kafka_2.13-2.4.1/bin/kafka-console-consumer.sh --bootstrap-server 10.20.31.137:9092 --topic test --from-beginning
说明:
from-beginning:每次从头开始消费
2.3.10 删除topic
/opt/kafka_2.13-2.4.1/bin/kafka-topics.sh --delete --zookeeper 10.20.31.137:2181 --topic test
2.4 集群可视化管理
2.4.1 https://blog.csdn.net/llwy1428/article/details/94389615