前言
本系列为我学习 kafka 过程中的一些整理与记录,本篇主要记录 kafka 集群的安装。
环境及机器:
节点:三台虚拟机
配置:内存 16G、硬盘 100G
系统:Centos 7.7
一、 Zookeeper 安装
Kafka 集群的运行依赖于 Zookeeper 因此在安装 Kafka 之前需要先按照 Zookeeper
1.1 JDK 安装
JDK 的安装可以直接参照 Hadoop 完全分布式安装 此篇博客中有详细的步骤。
1.2 Zookeeper 安装
-
Zookeeper 下载:
Zookeeper 下载可以直接从 清华源 下载,可以直接使用 wget 命令下载至 linux 系统内也可以下载到本地然后通过 FTP 工具上传至服务器,本文选择 FTP 的方式
-
tar 包解压
执行命令:
# -C 后为解压的目标路径 tar -zxvf zookeeper-3.4.10.tar.gz -C you.dir
-
配置 Zookeeper
-
在 zookeeper 目录下创建 zkData 文件夹:
mkdir zkData
-
创建 myid 文件
touch myid
-
编辑 myid 文件配置唯一的服务器 id
vim myid
此处配置一个全集群唯一的整数标记服务器即可,需要注意的是集群上的所有机器都需要配置的 myid 都应是不同的。
-
配置 zoo.cfg 文件
# 复制模板 cp zoo_sample.cfg zoo.cfg # 配置 cfg 文件 vim zoo.cfg
红框内为需要配置的内容,
dataDir
配置为 zkData 的全路径,下方添加集群内容。 参数说明:
server.A=B:C:D
- A 为一个数字,一般和 myid 文件中配置的相同,标识了第几号服务器
- B 为机器的 IP 地址
- C 是这个服务器与集群中的Leader服务器交换信息的端口
- D 是如果集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口
-
集群同步配置
使用
scp
命令进行集群配置同步scp -r your.zookeeper.dir targetIp:targer.dir
需要注意的是同步完之后需要相应的修改 myid。
-
-
Zookeeper 启动
在所有机器上执行命令:
bin/zkServer.sh start
启动后查看 Zookeeper 状态,出现下图说明当前节点启动成功
bin/zkServer.sh status
二、Kafka 安装
完成了 Zookeeper 的安装接下来就可以开始安装 Kafka 了。
-
Kafka 下载
同样安装之前需要先下载 Kafka 的安装包,依然使用 清华源 具体过程同 Zookeeper 不在赘述了
-
解压 Kafka
执行命令:
tar -zxvf kafka_2.11-0.11.0.2.tgz -C your.dir
-
配置 Kafka
进入 Kafka 下的 config 目录修改配置文件:
vim 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,命名为 log 但实际是 kafka 的 数据和 log 都存放在这个目录下 #推荐创建一个 data 目录并将此处的 log 修改为 data 让数据和 kafka log 分开 log.dirs=/opt/module/kafka/data #topic在当前broker上的分区个数 num.partitions=1 #用来恢复和清理data下数据的线程数量 num.recovery.threads.per.data.dir=1 #segment文件保留的最长时间,超时将被删除 log.retention.hours=168 #配置连接Zookeeper集群地址 zookeeper.connect=hadoop001:2181,hadoop002:2181,hadoop003:2181
需要注意的 broker.id 与 log.dirs 这俩个属性,具体可参考注释。
-
Kafka 启动
同 Zookeeper 一样 Kafka 没有提供集群启动的脚本,需要在每台机器上分别启动,当然可以自动写一个群起脚本,由于 Kafka 的 broker 是一个阻塞进程因此选择使用守护进程启动:
/bin/kafka-server-start.sh -daemon /config/server.properties
-
查看启动情况
使用
jps
命令查看 Kafka 是否正常运行,若出现 Kafka 则说明启动成功,至此 Kafka 安装完成!
择使用守护进程启动:
/bin/kafka-server-start.sh -daemon /config/server.properties
-
查看启动情况
使用
jps
命令查看 Kafka 是否正常运行,若出现 Kafka 则说明启动成功,至此 Kafka 安装完成!