‘安装部署’是学习的第一步,从陌生到熟悉的开始。
下面给大家介绍4种安装部署情况
1)kafka单点模式
2)kafka集群
3)kafka伪集群
4)windows上部署(一定会有人喜欢这一种,因在本地用起来直观简单,无需借助集群)
不管是哪一种部署方式,都需要依赖于zookeeper (Kafka3.0+ 不需要依赖zk),不必纠结,重点应该在于应用和其原理。如下就根据kafka2.+介绍呗?
准备软件
zookeeper-3.4.9.tar.gz
kafka-2.12-2.6.0
(其小版本都ok)
一、kafka单点模式
step1:安装zookeeper
暂且忽略。
step2:安装kafka
step1 : 下载kafka
去kafka官网下载一下:https://kafka.apache.org/(对于初学者很容易不知道在哪里下载,或者不知道在官网什么位置下载,这都是正常的。因为曾经我也是,非常头大。
可以到我整理的软件库里面直接拉取就行,里面我会定期迭代软件版本)
step2 : 解压
tar -zxvf kafka_2.12-2.6.0.tgz
step3 : 改配置文件
cd kafka/config
vim server.properties[如下]
#1.broker.id 要求每台主机是唯一的整数。
broker.id=1
#2.设置是否删除主题?设置为true。这样的话,不想要就可以删除。
delete.topic.enable=true
#3.存储数据的文件(注意这里不是存日志的,别被名字误导)
log.dirs=./logs
#4.数据在队列中保存的时间(我设置的是一小时)
log.retention.hours=1
#5.zk的连接
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=18000
#6.打开kafka外网监听【一般用于跨机房,路由,公网使用】(选)
advertised.listeners=PLAINTEXT://主机ip:9092
port = 9092
step4:配置环境变量
#KAFKA
export KAFKA_HOME=/home/hduser/kafka
export PATH=$PATH:$KAFKA_HOME/bin
step6 : 启动zk
zkServer.sh start
jps检查zk启动成功step7:启动kafka
~/bin/kafka-server-start.sh
完毕。
2)kafka集群安装
step1: 按照kafka单点安装的步骤先把每个节点安装好
step2:修改server.properties配置
想要kafka在一个集群,只需要其依赖的zk在一个集群即可。
修改如下:
zookeeper.connect=zk节点1:2181,zk节点2:2182,zk节点3:2183 ....
step3: 重启所有zk节点
bin/zkServer.sh start
step4:重启所有kafka节点
~/bin/kafka-server-start.sh
step5:jps 看看各个服务都起来没。
2101 QuorumPeerMain
2843 Kafka
3)kafka伪集群安装
伪集群就是单台机子,模拟集群来学习,不考虑其性能,学习用足够了。
step1: 按照kafka单点安装的步骤先把每个节点安装好
step2: 安装好的kafka文件夹复制三分。分别是kafka1,kafka2,kafka3
step3: 修改server.properties
1)broker.id 不要重复
2)端口不要重复
3)zk连接如下修改成集群模式,具体端口按照自己的实际
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
step3: 重启所有zk节点
bin/zkServer.sh start
step4:重启所有kafka节点
~/bin/kafka-server-start.sh
step5:jps 看看各个服务都起来没。
2101 QuorumPeerMain
2843 Kafka
4)windows上部署
step1: zk安装包,下载下来直接解压即可。【别忘了配置环境变量】
step2:到cmd启动zk
zkserver
step3:下载kafka安装包, 也是直接启动(因为里面默认的zk连接就是localhoust:2181)【别忘了配置环境变量】
step4:到cmd 启动kafka
cd kafka*
.\bin\windows\kafka-server-start.bat .\config\server.properties
至此,kafka的几种部署方式介绍完毕。
补充:kafka常用命令
#如下 --zookeeper nodex:2181 都可以。这里看成像集群哪一台机子的zookeeper进行交流。
#查看当前服务器中所有topic ============================================
./bin/kafka-topics.sh \
--zookeeper node1:2181 \
--list
#创建一个 topic主题【包含主题名字,分区数,副本数】========================
./bin/kafka-topics.sh \
--zookeeper node1:2181 \
--create \
--topic 主题名字 \
--partitions 2 \
--replication-factor 2 \
#创建成功后,控制台会打印:Created topic 主题名字.
#这时候 ls kafka/logs/ 我们发现有个节点有会有“主题-0”,有个节点有会有“主题-1”。然后再随机找1个“非己”节点备份自己分区主题“主题-x”。 另外leader和flower也是根据某种机制选择的(后面介绍)
#删除topic ========================================================
./bin/kafka-topics.sh \
--zookeeper node1:2181 \
--delete \
--topic 主题名字
#反馈如下:
Topic t1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
#显示t1 这个topic已经被标记删除, 下一行告诉我们delete.topic.enable 设置为true才会被真正删除,这里只是告知,即使我们已经这样设置,它还是会告诉我们滴。
#查看topic的详情 ====================================================
./bin/kafka-topics.sh \
--zookeeper node1:2181 \
--describe \
--topic 主题名字
#反馈显示如下图:
第一行反馈 topic的名字, 分区数, 备份数, 相关配置
下面两行是展示topic在每个分区的信息:
topic名字, 分区名字, Leader机, 备份机, ISR
下期:
flink-cdc实时同步数据, 以及一些解析binlog的工具应用