1.概述
最近有同学留言,Kafka Eagle的分布式模式功能怎么使用,如何部署安装?今天笔者就为大家来详细介绍一下Kafka Eagle的分布式模式功能的安装和使用。
2.内容
首先,这里我们需要说明一下,Kafka Eagle已经更名为EFAK(Eagle For Apache Kafka)。感谢Apache Kafka PMC的认可,EFAK将继续提供和开发新功能,来满足Kafka集群和应用的相关监控和管理功能。
2.1 背景
当我们管理Kafka多集群或者一个规模较大的Kafka集群时,单机模式的EFAK部署时,运行的多线程任务,相关消费者、Topic、生产者、Broker & Zookeeper的监控指标等内容调度时,部署EFAK的服务器如果配置较低,会造成很大的负载,对CPU的负载会很高。为了解决这类问题,EFAK开发了分布式模式的部署,可由多个低配置的服务器来组件一个EFAK集群。来对Kafka多集群进行监控和管理。
2.2 基础环境
部署EFAK所需要的基础环境如下:
2.2.1 硬件和操作系统
- 操作系统:Linux系统即可(Ubuntu、CentOS等)
- JDK:JDK8以上
- CPU:1核以上
- 内存:2GB以上
2.2.2 EFAK安装包
EFAK安装包,目前官网上以及发布了最新的v2.0.9版本,支持分布式模式部署。可以直接下载到Linux服务器进行安装和部署使用。如果需要自行编译部署,可以到Github下载源代码进行编译部署:
2.3 安装部署
EFAK分布式模式部署,这里以5个节点为例子(1个Master和4个Slave),各个节点的角色如下如所示:

2.3.1 配置EFAK环境
首先,我们定义一个服务器为Master节点,在Master节点上下载EFAK安装包,并配置EFAK所需要的环境变量,具体内容如下所示:
- # 编辑环境变量文件
- vi ~/.bash_profile
- # 添加如下内容
- # 添加JDK环境,建议使用JDK8以上
- export JAVA_HOME=/data/soft/new/jdk
- # 添加EFAK环境
- export KE_HOME=/data/soft/new/efak
- export PATH=$PATH:$JAVA_HOME/bin:$KE_HOME/bin
然后执行source ~/.bash_profile命令使配置环境变量立即生效。
2.3.2 配置EFAK系统文件
在EFAK的conf目录下有两个配置系统的文件,它们分别是:
- system-config.properties:用来配置EFAK系统相关内容,比如启动端口、Zookeeper地址、Kafka安全认证信息、数据库存储地址等;
- works:Slave节点地址(建议直接使用IP)。
1.配置works文件
works存储节点IP地址如下:
- 192.168.31.75
- 192.168.31.98
- 192.168.31.251
- 192.168.31.88
2.配置system-config.properties文件
EFAK配置信息如下所示:
2.3.3 分发EFAK安装包和系统环境
1.同步EFAK系统环境
- # 同步系统环境
- for i in `cat $KE_HOME/conf/works`;do scp ~/.bash_profile $i:~/;done
2.同步EFAK安装包到Slave节点
- # 如果你的$KE_HOME环境地址为/data/soft/new/efak
- for i in `cat $KE_HOME/conf/works`;do scp -r $KE_HOME $i:/data/soft/new/;done
然后,修改Master节点上的属性值efak.cluster.mode.status,将Master节点上该属性值slave修改为master即可。其他Slave节点无需改动。
2.3.4 启动EFAK分布式集群
EFAK分布式模式新增了ke.sh cluster命令,该命令支持如下参数:
- ke.sh cluster start:启动EFAK分布式集群;
- ke.sh cluster status:查看EFAK分布式集群状态;
- ke.sh cluster stop:停止EFAK分布式集群
- ke.sh cluster restart:重启EFAK分布式集群
当我们完成EFAK系统环境和安装包的分发后,就可以执行ke.sh cluster start启动命令了。
- # 启动 EFAK 分布式模式
ke.sh cluster start
具体启动截图如下所示:

执行ke.sh cluster status命令查看各个节点的状态:
- # 查看节点状态
- ke.sh cluster status
执行上述命令,具体截图如下所示:

2.3.5 新增EFAK节点监控
在EFAK分布式模式下,新增监控EFAK各个节点的功能(单击模式下也可以查看Master节点相关指标),具体监控内容如下图所示:

3.总结
如果是Kafka集群规模较大或者管理的Kafka集群有多个,可以使用EFAK的分布式模式部署。如果管理的Kafka集群规模较小,Topic数量、消费者应用等较少,可以使用EFAK的单机模式部署即可。
4.结束语
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
另外,博主出书了《Kafka并不难学》和《Hadoop大数据挖掘从入门到进阶实战》,喜欢的朋友或同学, 可以在公告栏那里点击购买链接购买博主的书进行学习,在此感谢大家的支持。关注下面公众号,根据提示,可免费获取书籍的教学视频。