Kafka集群及Kafka-Manager部署
一、环境
服务器:
| IP地址 | 操作系统 |
|---|---|
| 192.168.241.11 | CentOs7-1804 |
| 192.168.241.12 | CentOs7-1611 |
| 192.168.241.13 | CentOs7-1804 |
JDK版本:1.8.0_151
ZooKeeper版本:3.4.12
Kafka版本:2.12-2.1.0
二、软件安装
三台服务器均需要安装Java JDK和Kafka,Java JDK的安装本文不再赘述。
Kafka集群依赖Zookeeper集群。Kafka官方安装程序中内置Zookeeper,但本文使用的是自建的Zookeeper集群,Zookeeper集群的部署请参阅:《ZooKeeper集群部署》
1、下载Kafka,官网下载地址为:http://kafka.apache.org/downloads
本文下载到的安装包名为:kafka_2.12-2.1.0.tgz
2、将安装包拷贝到服务器上解压,本文解压到了/usr/local/lib目录下。

三、配置
配置安装目录里config目录下的server.properties文件,本文为:/usr/local/lib/kafka_2.12-2.1.0/config/server.properties文件。
修改broker.id,listeners和zookeeper.connect这三个配置项。
broker.id:这是当前服务器节点在Kafka集群中的ID,必须是一个整数,各个节点的ID不能相同。例如本文的集群由3台服务器组成,各台服务器上该值分别为1,2,3。



listeners:当前节点的服务地址。例如本文其中一个节点的配置为:
listeners=PLAINTEXT://192.168.241.11:9092
这个配置项在下载下来的文件中是被注释掉的,即使不配置,kafka也能正常启动,使用默认端口9092进行侦听。但如果不配置,在消费者程序的日志中会不停的弹出警告,如下图,所以还是配置的比较好。

zookeeper.connect:zookeeper集群的地址,可以是多个,多个之间用逗号分割。例如本文的配置为:
zookeeper.connect=192.168.241.11:2181,192.168.241.12:2181,192.168.241.13:2181
server.properties中还有许多配置项,保持默认即可,如需详细了解,请读者自行百度。
四、Kafka的启动和停止
使用Kafka安装目录下的bin目录里的脚本来启停zookeeper服务,以本文为例:
启动Kafka
/usr/local/lib/kafka_2.12-2.1.0/bin/kafka-server-start.sh -daemon /usr/local/lib/kafka_2.12-2.1.0/config/server.properties
使用jps命令查看Kafka是否启动成功,如下图,看到有Kafka即表示启动成功。

停止Kafka
/usr/local/lib/kafka_2.12-2.1.0/bin/kafka-server-stop.sh
五、配置使用systemd启停Kafka
本文对systemd相关知识不再赘述,不了解的读者请自行百度。
1、创建并编辑/usr/lib/systemd/system/kafka.service文件,文件内容如下:
[Unit]
Description=Kafka Server
Documentation=http://kafka.apache.org/
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=kafka
Group=kafka
WorkingDirectory=/usr/local/lib/kafka_2.12-2.1.0
ExecStart=/usr/local/lib/kafka_2.12-2.1.0/bin/kafka-server-start.sh -daemon /usr/local/lib/kafka_2.12-2.1.0/config/server.properties
ExecStop=/usr/local/lib/kafka_2.12-2.1.0/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
2、使用systemd启停zookeeper
启动
systemctl start kafka

停止
systemctl stop kafka
六、部署Kafka Manager
为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
- 管理多个kafka集群
- 便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)
- 选择你要运行的副本
- 基于当前分区状况进行
- 可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)
- 删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)
- Topic list会指明哪些topic被删除(在0.8.2以上版本适用)
- 为已存在的topic增加分区
- 为已存在的topic更新配置
- 在多个topic上批量重分区
- 在多个topic上批量重分区(可选partition broker位置)
1、下载Kafka Manager
下载地址:https://github.com/yahoo/kafka-manager/releases
本文下载的包为:kafka-manager-1.3.3.18.tar.gz
2、将下载的包拷贝到服务器上解压,解压出的目录如下图:

3、安装sbt
从GitHub上下载下来的只有源码,必须使用sbt进行编译。
下载sbt源
curl https://bintray.com/sbt/rpm/rpm > /etc/yum.repos.d/bintray-sbt-rpm.repo
使用yum在线安装sbt
yum install sbt
网上大部分教程说,由于墙的存在,官方的sbt默认库很慢,建议修改镜像仓库,但我在使用过程中,虽然速度慢一些,但除了无法查看sbt版本,每出现什么问题,编译过程大概耗时十几分钟。
4、编译Kafka Manager
在解压后的源码目录下执行编译命令
cd /tmp/kafka-manager-1.3.3.18-src
./sbt clean dist
出现下图所示文字,表示编译成功(由于在编译时没及时截图,故这里使用的是网图)

编译完成后,会在源码目录里的target/universal目录下,生成一个kafka-manager-1.3.3.18.zip文件,这个文件就是最终的安装包。(已将编译好的安装文件上传至CSDN,https://download.csdn.net/download/guan0005/10850179)

5、安装Kafka Manager
解压kafka-manager-1.3.3.18.zip文件,本文解压到了/usr/local/lib目录下,如图:

6、配置Kafka Manager
修改Kafka Manager安装目录下的conf/application.conf文件,将kafka-manager.zkhosts配置项的值修改为zookeeper集群的地址列表:
kafka-manager.zkhosts="192.168.241.11:2181,192.168.241.12:2181,192.168.241.13:2181"
修改Kafka Manager安装目录下的conf/logger.xml和conf/logback.xml文件,将其中的${application.home}替换为Kafka Manager安装目录的绝对路径。
如,替换前:

替换后:

替换${application.home},是因为我们没有配置这个参数,启动Kafka Manager的时候,日志里会抱错,但不影响使用。
7、启动Kafka Manager
nohup /usr/local/lib/kafka-manager-1.3.3.18/bin/kafka-manager -Dconfig.file=/usr/local/lib/kafka-manager-1.3.3.18/conf/application.conf -Dhttp.port=9000 &
9000是Kafka Manager的默认服务端口。
启动完成后,在浏览器地址栏中输入Kafka Manager所在服务器的IP地址及服务端口,即可看到界面。以本文为例,在浏览器地址栏中输入http://192.168.241.11:9000,即可看到如下图所示界面:

本文详述了Kafka集群的部署过程,包括环境配置、软件安装、Kafka配置、启动与停止,以及如何使用systemd管理Kafka。此外,还介绍了部署Kafka Manager的步骤,包括下载、编译、安装与配置,以方便管理和监控Kafka集群。
1万+

被折叠的 条评论
为什么被折叠?



