当前位置:首页 > 技术分析 > 正文内容

Kafka-manager部署与使用简单介绍

ruisui882周前 (06-02)技术分析17

Kafka Manager是 Yahoo 推出的 Kafka 开源管理工具,用于管理Apache Kafka集群的工具,用户可以在Web界面执行一些简单的Kafka集群管理操作

Kafka Manager支持以下内容:

  • 管理多个集群
  • 轻松检查群集状态(主题,使用者,偏移量,代理,副本分发,分区分发)
  • 运行首选副本选择
  • 生成带有选项的分区分配,以选择要使用的代理
  • 运行分区的重新分配(基于生成的分配)
  • 创建带有可选主题配置的主题(0.8.1.1与0.8.2+具有不同的配置)
  • 删除主题(仅在0.8.2+上受支持,并记住在代理配置中设置delete.topic.enable = true)
  • 主题列表指示标记为删除的主题(仅在0.8.2+上受支持)
  • 批量生成多个主题的分区分配,并可以选择要使用的代理
  • 批量运行分区的多个主题的重新分配
  • 将分区添加到现有主题
  • 更新现有主题的配置

Kafka Manager下载地址
https://github.com/yahoo/kafka-manager/releases

下载下来的是源码包,需要进行sbt编译,为了方便我这里直接下载编译好的kafka-manager-1.3.3.8.zip

下面搭建kafka测试环境,简单演示kafka manager部署与使用

1、kafka环境准备

可以使用如下脚本创建单节点的kafka测试服务器

脚本如下(脚本写得较简单,可以忽略脚本健壮性)

#!/bin/bash
setenforce=0
systemctl disable firewalld
systemctl stop firewalld
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
echo "-----------安装JDK----------------"
cd /opt
unzip jdk_zookeeper_kafka.zip
sleep 5
rpm -ivh jdk-8u251-linux-x64.rpm
echo "export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64" >> /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
echo "export CLASSPATH=.:\$JAVA_HOME/jre/lib:\$JAVA_HOME/lib:\$JAVA_HOME/lib/tools.jar" >> /etc/profile
echo "-----------安装zookeeper----------------"
cd /opt
tar -zxf apache-zookeeper-3.6.0-bin.tar.gz
mv apache-zookeeper-3.6.0-bin zookeeper
cd zookeeper
mkdir data
cd conf
cp zoo_sample.cfg zoo.cfg

sed -i "s#dataDir=/tmp/zookeeper#dataDir=/opt/zookeeper/data#g" zoo.cfg
echo "server.1=127.0.0.1:2888:3888"
echo 1 > /opt/zookeeper/data/myid
echo "export PATH=\$PATH:/opt/zookeeper/bin" >> /etc/profile
echo "-----------安装kafka----------------"
cd /opt
tar -zxf kafka_2.13-2.5.0.tgz
mv kafka_2.13-2.5.0 kafka
cd kafka
mkdir data
cd config
cp server.properties server.properties_default
sed -i "s#log.dirs=/tmp/kafka-logs#log.dirs=/opt/kafka/data#g" server.properties
echo "listeners=PLAINTEXT://192.168.31.80:9092" >> server.properties

sed -i "s#/opt/zookeeper/bin#/opt/zookeeper/bin:/opt/kafka/bin#g" /etc/profile
source /etc/profile
echo $PATH
echo "已经完成安装 100%"
echo "-----------请按如下方法启动zookeeper+kafka----------------"
echo "1、先退出当前终端会话,重新连接"
echo "2、执行zkServer.sh start 启动zookeeper服务"
echo "3、执行kafka-server-start.sh -daemon /opt/kafka/config/server.properties启动kafka"
echo "4、执行tail -f /opt/kafka/logs/server.log查看kafka启动日志"

上传jdk_zookeeper_kafka.zip和 kafka_install.sh

 sh kafka_install.sh

2、修改kafka-server-start.sh,添加JMX启动参数

cd /opt
cd kafka/bin
vi kafka-server-start.sh

#在export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"这一行下方添加
#export JMX_PORT="9999"

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
    export JMX_PORT="9999"
fi

如下图所示

然后启动zookeeper和kafka

zkServer.sh start
kafka-server-start.sh -daemon /opt/kafka/config/server.properties

3、上传kafka-manager安装包并修改参数

unzip kafka-manager-1.3.3.23.zip
mv kafka-manager-1.3.3.23 kafka-manager
cd kafka-manager/conf
cp application.conf application.conf_default_bak


修改如下参数 vi application.conf

1)、将kafka-manager.zkhosts="
kafka-manager-zookeeper:2181"修改为当前的zookeeper地址与端口

2)、开启用户名密码验证


basicAuthentication.enabled=false改为
basicAuthentication.enabled=true

4、启动kafka-manager

cd /opt/kafka-manager/bin
 ./kafka-manager -Dconfig.file=/opt/kafka-manager/conf/application.conf -Dhttp.port=9000

5、添加集群,并查看集群的相关信息

kafka-topics.sh --create --zookeeper localhost:2181 --partitions 2 --replication-factor 1 --topic yuanfan_kafka_test
kafka-console-producer.sh --bootstrap-server 192.168.31.80:9092 --topic yuanfan_kafka_test
kafka-console-consumer.sh --bootstrap-server 192.168.31.80:9092 --topic yuanfan_kafka_test

1)可以创建主题,测试主题的自生产与自消费

2)用之前配置文件中账户密码登录kafka-manager

默认admin/password

3)登录后的界面

4)添加集群,修改连接集群的配置

5)查看topic的信息

6)Topic的综合信息及指标信息

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4402.html

分享给朋友:

“Kafka-manager部署与使用简单介绍” 的相关文章

Vue3,父组件子组件传值,provide(提供)和inject(注入)传值

父组件向子组件传值父子组件传递数据时,通常使用的是props和emit,父向子传递使用props,子向父传递使用emit。子组件接收3种方式// 1、简单接收 props:["title","isShow"], // 2、接收的同时对数据类型进行限制 props:{...

Python中的11 种数组算法

1. 创建数组 创建数组意味着留出一个连续的内存块来存储相同类型的元素。在大多数语言中,您可以在创建数组时指定数组的大小。假设您正在书架上整理一组书籍,并且您需要为正好 10 本书预留空间。功能架上的每个空间都对应于数组中的一个索引。# Example in Python arr = [1, 2,...

Vue中路由router的基本使用

??本文开始我们来给大家介绍在Vue中非常重要的一个内容,就是路由Router什么是路由后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特...

一套代码,多端运行——使用Vue3开发兼容多平台的小程序

介绍Vue3发布已经有一段时间了,从目前来看,其生态还算可以,也已经有了各种组件库给予了支持,但是不管是Vue3还是Vue2都无法直接用来开发小程序,因此国内一些技术团队针对Vue开发了一些多端兼容运行的开发框架,今天来体验一下使用Taro来体验一下使用Vue3开发多平台运行的小程序,以便于兼容各大...

基于 vue3.0 小程序拖拽定制

今天给大家分享一个使用Vue3编写的自由DIY小程序页面。mbDIY 一款基于vue3.x构建的可拖拽定制小程序模板。支持新建页面、自由拖拽模块、复制/移动、自定义模块样式等功能。整个项目分为页面、模块、控件三大部分。模块里面的组件可拖拽至主面板区,编辑后保存即可预览效果。快速安装# 克隆项目 gi...

在vue项目中封装WebSockets请求

在Vue项目中封装WebSocket请求包括以下步骤:1. 安装WebSocket库:首先,导入WebSocket库,例如`vue-native-websocket`或`socket.io-client`。根据项目需求选择适当的库,并根据官方文档进行安装和配置。2. 创建WebSocket服务:在V...