【kafka】可视化工具cmak(原kafka-manager)安装问题解决
众所周知(反正不管你知不知道),kafka-maneger更名了,现在叫cmak!原因是什么呢?据不可靠小道信息说,原kafka-manager这个名字涉及到kafka商标使用问题,应该是被律师函警告了,所以就换名了~
1.下载地址:
https://github.com/yahoo/CMAK


下载后,解压后如上图
注:本次下载最新版本包,之前的老版本下载后还需要自己编译代码然后再部署使用,新版不用,根本不用!
2.解压缩后,将解压包放到合适的位置,然后修开配置文件application.conf

修改如下, 红框中的改成自己的集群地址就OK了,如果是本机部署,直接写本机ip
注:kafka-manager.zkhosts后续会废弃掉,可以注释掉,只保留cmak.zkhosts配置

3.启动cmak
进入目录cmak-3.0.0.6/bin下sh cmak
启动成功
4.进入平台
地址:http://172.30.19.168:9000/

5. 添加add clusters

参数添加:

然后保存就行了
保存完就可以看到下图,红框的内容,第一次部署是没有红框内容的,只有添加完clusters才会出现

6.愉快的使用

7.启动日志报错:Failed to get broker metrics for BrokerIdentity(0,localhost,-1,false,true,Map(PLAINTEXT -> 9092))
如果报错会影响Mwtrics模块没数据

报错信息:
2024-07-02 19:38:12,373 - [ERROR] - from kafka.manager.actor.cluster.BrokerViewCacheActor in kafka-manager-system-akka.actor.default-dispatcher-8
Failed to get broker metrics for BrokerIdentity(0,localhost,-1,false,true,Map(PLAINTEXT -> 9092))
java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled!at scala.Predef$.require(Predef.scala:281)at kafka.manager.jmx.KafkaJMX$.doWithConnection(KafkaJMX.scala:39)at kafka.manager.actor.cluster.BrokerViewCacheActor.$anonfun$updateBrokerMetrics$3(BrokerViewCacheActor.scala:359)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)at scala.util.Success.$anonfun$map$1(Try.scala:255)at scala.util.Success.map(Try.scala:213)at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)2024-07-02 19:38:12,373 - [ERROR] - from kafka.manager.actor.cluster.BrokerViewCacheActor in kafka-manager-system-akka.actor.default-dispatcher-8
Failed to get broker topic segment metrics for BrokerIdentity(0,localhost,-1,false,true,Map(PLAINTEXT -> 9092))
java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled!at scala.Predef$.require(Predef.scala:281)at kafka.manager.jmx.KafkaJMX$.doWithConnection(KafkaJMX.scala:39)at kafka.manager.actor.cluster.BrokerViewCacheActor.$anonfun$updateBrokerTopicPartitionsSize$3(BrokerViewCacheActor.scala:383)at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:659)at scala.util.Success.$anonfun$map$1(Try.scala:255)at scala.util.Success.map(Try.scala:213)at scala.concurrent.Future.$anonfun$map$1(Future.scala:292)at scala.concurrent.impl.Promise.liftedTree1$1(Promise.scala:33)at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:33)at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
8.解决方案
在kafka-server-start.sh中开头添加一行代码,然后重启kafka,报错解决了
export JMX_PORT="9999"

kafka-server-start.sh 路径:../kafka/3.7.0/libexec/bin
如果忘记kafka安装路径,可以通过以下方式:
1.通过whereis kafka-server-start 命令找到命令目录

2.cd 路径,如:cd /opt/homebrew/bin/
3.在/opt/homebrew/bin/目录找到kafka-server-start
4.cd ../Cellar/kafka/3.7.0/bin/ 然后找到kafka-server-start
5.cat kafka-server-start 查看命令的执行位置,我们会发现实际执行是:
/opt/homebrew/Cellar/kafka/3.7.0/libexec/bin/kafka-server-start.sh

6.vim /opt/homebrew/Cellar/kafka/3.7.0/libexec/bin/kafka-server-start.sh 然后添加export JMX_PORT="9999"
相关文章:
【kafka】可视化工具cmak(原kafka-manager)安装问题解决
众所周知(反正不管你知不知道),kafka-maneger更名了,现在叫cmak!原因是什么呢?据不可靠小道信息说,原kafka-manager这个名字涉及到kafka商标使用问题,应该是被律师函警告了ÿ…...
【转载】目标检测mAP的含义
转载自三叔家的猫 https://blog.csdn.net/qq_39056987 https://blog.csdn.net/qq_39056987/article/details/104348493 <div id"content_views" class"markdown_views prism-atom-one-light"><svg xmlns"http://www.w3.org/2000/svg" s…...
智慧校园行政办公-红头文件功能概述
在智慧校园的行政办公系统中,红头文件的管理功能是一项重要的组成部分,它极大地提升了文件处理的效率与规范性。该功能围绕文件的创建、审批、归档等关键环节,进行了全面的数字化改造。 首先,系统内置了多种标准化的红头文件模板&…...
汽车IVI中控开发入门及进阶(三十三):i.MX linux开发之开发板
前言: 大部分物料/芯片,不管MCU 还是SoC,都会有原厂提供配套开发板,有这样一个使用原型,在遇到问题时或者进行开发时可以使用。 i.MX 8QuadXPlus MEK board: 1、要测试display显示器,可使用i.MX mini SAS将“LVDS1_CH0”端口连接到LVDS到HDMI适配器的cable。 2、要测试…...
Redis基础教程(十八):Redis管道技术
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝Ὁ…...
深度学习(笔记内容)
1.国内镜像网站 pip使用清华源镜像源 pip install <库> -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip使用豆瓣的镜像源 pip install <库> -i https://pypi.douban.com/simple/ pip使用中国科技大学的镜像源 pip install <库> -i https://pypi.mirro…...
阿里云登陆Centos7
用自己电脑登陆Centos7太麻烦了,还要自己弄个虚拟机,一个电脑里面既有WIN又有LINUX,索性直接买个阿里云服务器,来学习Centos7。 购买 我是新用户,可以试用3个月,先用个3个月再说哈哈哈。 一系列操作之后…...
探索C嘎嘎的奇妙世界:第十九关---STL(list的模拟实现)
1. 基本框架 首先,我们先从节点的准备工作入手,请看示例: #pragma once #include<iostream> #include<assert.h> using namespace std; //节点 template<class T> struct ListNode {ListNode<T>* _next;Li…...
【分布式系统三】监控平台Zabbix对接grafana(截图详细版)
目录 一.安装grafana并启动 二.浏览器访问 三.导入zabbix数据,对接grafana 四.如何导入模版 以前两篇博客为基础 【分布式系统】监控平台Zabbix介绍与部署(命令截图版)-CSDN博客 【分布式系统】监控平台Zabbix自定义模版配置-CSDN博客 …...
SAPUI5基础知识11 - 组件配置(Component)
1. 背景 组件(Component)是SAPUI5应用程序中独立且可重用的部件。 SAPUI5提供以下两类组件: faceless组件 (class: sap.ui.core.Component): 无界面组件即没有用户界面相关的元素,用于不需要UI元素编码的场景; UI组件 (class: …...
Spring最早的源码
地址:Spring最早的源码...
热烈祝贺!全视通多家客户上榜全球自然指数TOP100!
2024年6月18日,全球医疗机构自然指数TOP100榜单发布,中国医疗机构在其中的表现尤为引人注目。 根据《自然》杂志网站发布的数据,此次公布的排名是基于(2023年3月1日至2024年2月29日)的统计数据,全球医疗机构…...
常用接口避免频繁请求
背景 在项目开发过程中我们难免会遇到一些通用的接口,需要在多个页面调用,拿去结果。比如我们常用的字典接口,后端通过字典配置一些数据,通常这些字典数据是不常更改的。我们通过字典接口传递不同的参数过去,获取到接…...
C++入门基础
前言 本篇博客讲解一下c得入门基础 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee:普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞&…...
Unicode 与 UTF-8 的区别与联系
文章目录 UnicodeUTF-8联系区别Unicode 转义序列字符编码与字符的对应规则例子 Unicode 定义:Unicode 是一个字符编码标准,旨在为世界上所有的字符分配一个唯一的编码。 编码范围:Unicode 的编码范围从 0x0000 到 0x10FFFF,能够表…...
PHP MySQL 简介
PHP MySQL 简介 PHP 和 MySQL 是现代网站开发中最流行的两种技术。PHP 是一种服务器端脚本语言,而 MySQL 是一种关系型数据库管理系统。这两种技术经常一起使用,以创建动态和交互式的网页。本文将简要介绍 PHP 和 MySQL 的基本概念、它们的工作原理以及…...
Spring容器加载Bean和JVM加载类
1、JVM加载类 类的加载是在首次需要访问类的信息或实例化类的对象时发生的过程。ClassLoader负责加载类的字节码,并在内存中创建对应的Class对象,从而使得Java程序能够操作和使用这些类。 在Java中,类的加载是按需进行的,也就是…...
《简历宝典》04 - 简历的“个人信息”模块,要写性别吗?要放照片吗?
平时帮助小伙伴们优化简历的时候,我看见他们有人会写性别,有人不会写。 目录 1 招聘团队的考虑 2 性别是无法改变的,能不写就不写 3 什么情况下,需要写性别呢? 4 简历中要加照片吗? 1 招聘团队的考虑 …...
TTS模型汇总
TTS是“Text-to-Speech”的缩写,中文意思是“文本到语音”。这是一种将文本信息转换成口语的技术,通常通过计算机程序实现。TTS技术可以应用于多种场景,包括但不限于: 辅助阅读:帮助视障人士或有阅读困难的用户通过听…...
js打印出堆栈
在JavaScript中,直接获取并打印完整的调用堆栈(stack trace)并不像在一些其他语言中那样直接。不过,有几种方法可以实现类似的功能,具体取决于你的需求和运行环境(如浏览器环境或Node.js环境)。…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
