jmx 替代_使用JMX作为Ganglia的现代替代品进行CLDB监视

jmx 替代

有许多选项可用于监视MapR集群的性能和运行状况。 在本文中,我将介绍使用Java管理扩展(JMX)监视CLDB的鲜为人知的方法。

据最受尊敬的MapR数据工程师之一,Akihiko Kusanagi称,与使用Ganglia相比,使用JMX获取CLDB指标可以被视为一种访问实时性能指标的更现代,更简单的方法。 Ganglia作为分布式集群(尤其是Hadoop)的指标收集服务已有很长的历史,在MapR文档中已很好地证明了其在此角色中的使用。

对于不使用此类工具的集群,使用JMX监视CLDB可能是一个明智的选择,可以避免安装和配置第三方监视解决方案。 在非常特定的情况下,实时,精细地监视CLDB可能很有用,在这种情况下,针对生产集群收集的普通指标未提供解决集群运行状况或性能方面某些问题所需的所有详细信息。 就CLDB而言,在MapR-FS的运行状况和性能方面尤其如此。

这篇文章主要面向经验丰富的MapR集群管理员和顾问。 为了使经验不足的读者受益,在深入了解本主题之前,我将花一些时间来介绍一些基本知识。

CLDB指标

CLDB(容器位置数据库)是MapR文件系统的核心,是MapR特定的技术,是Hadoop HDFS分布式文件系统的高性能且可靠的替代品。

CLDB通过替换NameNode打破了其他Hadoop发行版众所周知的单点故障。 这样,CLDB维护有关群集中数据位置的信息。 它的可靠性来自通常在群集的三个节点上运行,其中一个节点随时可作为主节点。

度量标准仅由CLDB主服务器收集,其他CLDB节点则作为从属服务器保持只读模式,因此不收集任何度量标准。

一个相当简明扼要的列表收集可以发现指标这里在MAPR文档。 这些指标与节点的硬件,CPU,内存和网络指标以及与卷,容器和RPC调用有关的MapR-FS特定指标相关。 最后,该服务还收集群集范围的CPU,磁盘空间和内存的总计指标。

特别令人感兴趣的是CLDB主站的CPU负载。 在少于100个节点的典型群集中,CLDB节点还运行其他服务。 随着群集大小的增加,CLDB节点可能会变得超负荷工作,并且很高的CPU使用率可能表明需要转向仅CLDB的节点设计,这是非常大的群集的最佳实践( 链接 )。

Java管理扩展(JMX)

JMX在2004年与J2SE 5.0 JDK一起引入,旨在用于企业应用程序中,以使系统可配置或在任何时间点获取应用程序状态。 CLDB服务包括已注册MBean的运行JMX服务器。

jmx-mbean-jconsole

使用众多JMX控制台实现中的任何一种,都可以实时读取CLDB应用程序状态。 在这里,我将重点介绍Jconsole,它是Oracle JDK的标准工具。

有许多在线资源可从Oracle的出色Java文档和教程以及JournalDev的教程中学习有关JMX的更多信息。

使用JConsole进行实时CLDB监视

在Mac OS和Linux中,jconsole已自动安装到/ usr / local / bin,因此可以使用。 唯一的依赖关系是Oracle的JDK。

执行jconsole会启动一个带有登录提示的Java应用程序:

jconsole-新连接

要进行连接,请选择“远程进程”并输入:<master CLDB host>:7220,然后按“ Connect”。 “用户名”和“密码”字段可以保留为空白。 提示将报告无法安全连接,并提出仍要连接或取消连接。 只需选择“不安全的连接”。

java监视和管理控制台

JMX控制台默认情况下会打开“概述”选项卡,如上所示。 它显示内存和CPU的实时指标。 这是一个非常“ Java JVM监视视图”,仅包含许多实用的CPU图表。 所有操作都在“ MBeans”选项卡和“ com.mapr.cldb” MBean中。

master-cldb-metrics-view

该视图允许访问由主CLDB收集的所有内部指标。 收集的指标从群集级别的指标(例如“群集内存容量”和“已使用的磁盘空间”)到非常细粒度的指标,这些指标可能仅对MapR内部软件工程师感兴趣(“已处理的重复ACR数量”吗? )。

MapR建议的指标是Ganglia公开的指标,并在文档中列出了这些指标。 在这种情况下不方便的是,没有与CLDB MBean相关的图。 一次只能访问一个值,并且该值不会自动刷新。

属性值

当然,可以使用Java以编程方式访问这些数字,而这会花费一些时间和精力。 按照此博客文章中的说明,也可以使用Python(通过JPype1包)。 以编程方式获取感兴趣的指标,仅花了我几分钟的时间就使用了该博客中的信息。 通过Python,可以轻松地将指标转发到数据库,ElasticSearch索引甚至是平面文件。

不过,老实说,实际上,我宁愿建议使用MapR REST API来满足生产集群的日常监视需求,这将是另一篇博客文章的主题。

结论

当然,对CLDB的JMX监视不太可能成为MapR集群管理员日常工具箱的一部分。 但是,我发现它很有趣,可以窥视MapR技术的这一关键部分的内部功能。 希望您会发现它和我一样有趣。

翻译自: https://www.javacodegeeks.com/2016/05/cldb-monitoring-using-jmx-modern-alternative-ganglia.html

jmx 替代

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPScan安全建议和防护

加固WordPress安全性 保护WordPress网站的安全性至关重要&#xff0c;因为它是全球最受欢迎的内容管理系统之一&#xff0c;也是攻击者经常瞄准的目标。本文将深入探讨如何加固WordPress安全性&#xff0c;包括实施强密码策略、保持更新、使用可靠的主题和插件、限制登录尝试、…

red hat安装宝塔_如何在几分钟内安装Red Hat Container Development Kit(CDK)

red hat安装宝塔作为负责开发容器化应用程序提供的可能性的应用程序开发人员或架构师&#xff0c;将所有工具组合在一起以帮助您入门时几乎没有帮助。 到现在。 红帽容器开发套件&#xff08;CDK&#xff09; 安装变得简单&#xff01; 红帽提供了一个容器开发套件&#xf…

python收集数据程序_用Python挖掘Twitter数据:数据采集

原标题&#xff1a;用Python挖掘Twitter数据&#xff1a;数据采集作者&#xff1a;Marco Bonzanini 翻译&#xff1a;数盟这是7部系列中的第1部分&#xff0c;注重挖掘Twitter数据以用于各种案例。这是第一篇文章&#xff0c;专注于数据采集&#xff0c;起到奠定基础的作用。Tw…

【FFMPEG中PTS与DTS统一转换为毫秒】

对于PTS和DTS 是两个非常重要的参数&#xff0c;在音视频同步时是必要的&#xff0c;为了方便使用&#xff0c;将二者统一为毫秒级别 static double r2d(AVRational r) {return r.den 0 ? 0 : (double)r.num / (double)r.den; } //转换为毫秒&#xff0c;方便做同步 AVPacke…

threejs 影子属性_影子场vs.属性访问器接口第2轮

threejs 影子属性如果你们还没有注意到Dirk Lemmerman和我之间的&#xff08;轻松&#xff09; 摊牌 &#xff0c;那么让我快速提及一下我们是如何做到这一点的。 首先&#xff0c;Dirk创建了JavaFX技巧23&#xff1a;“ 为属性保存内存阴影字段 ”&#xff0c;以帮助应用程序开…

【OpenGL从入门到精通】Shader专题

详解GPU的工作流程 1.shader通常称为着色器&#xff0c;作用是把CPU上的点渲染出来。 2.shader是并行的。 3.流程&#xff1a;数据data (顶点数据) ----->VS(输入&#xff1a;data的顶点数据&#xff0c;输出&#xff1a;gl_Position的 vec4 顶点数据)----->光栅化处理…

python内存管理可以使用del_Python深入学习之内存管理

语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无论是C语言的手工管理&#xff0c;还是Java的垃圾回收&#xff0c;都成为语言最重要的特征。这里以Python语言为例子&#xff0c;说明一门动态类型的、面向对象的语言的内存管理方式。对象的内存使用赋值…

【OpenGL从入门到精通(六)】纹理对象与纹理坐标

1.在OpenGL想要显示一张图片&#xff0c;需要先绘制一个自定义的几何体。 2.把图片加载到纹理对象中 3.当进行纹理贴图时候&#xff0c;使用纹理坐标来设置纹理对象。 2.

yeoman_具有Spring Boot和Yeoman的单页Angularjs应用程序

yeoman我非常感谢yeoman之类的工具&#xff0c;这些工具提供了一种非常快速的方法来将不同的javascript库组合在一起成为一个一致的应用程序。 Yeoman提供了UI层&#xff0c;如果您需要开发服务层和静态资产的Web层&#xff0c;则打包的一种好方法是使用Spring Boot 。 我知道有…

python30行代码_仅利用30行Python代码来展示X算法

假如你对数独解法感兴趣&#xff0c;你可能听说过精确覆盖问题。给定全集 X 和 X 的子集的集合 Y &#xff0c;存在一个 Y 的子集 Y*&#xff0c;使得 Y* 构成 X 的一种分割。这儿有个Python写的例子。X {1, 2, 3, 4, 5, 6, 7}Y {A: [1, 4, 7],B: [1, 4],C: [4, 5, 7],D: [3,…

LeetCode 203. 移除链表元素

原题链接 class Solution { public:ListNode* removeElements(ListNode* head, int val) {auto dummy new ListNode(-1);dummy->next head;for (auto p dummy; p; p p->next) {auto q p->next;while (q && q->val val) q q->next;p->next q…

双向链表删除节点时间复杂度_「十分钟学算法」删除链表的倒数第N个节点

给定一个链表&#xff0c;删除链表的倒数第 n 个节点&#xff0c;并且返回链表的头结点。示例&#xff1a;给定一个链表: 1->2->3->4->5, 和 n 2.当删除了倒数第二个节点后&#xff0c;链表变为 1->2->3->5.说明&#xff1a;给定的 n 保证是有效的。题解…

netbeans连接数据库_NetBeans Java EE技巧3:数据库中的RESTful Web服务

netbeans连接数据库许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展。 REST&#xff08;表示状态转移&#xff09;体系结构样式通常用于设计网络应用程序&#xff0c;而使用Java EE 7&#xff0c;很容易开发用于数据库通信的RESTful后端。 使用简单的POJO&#x…

双指针算法核心

1.双指针算法主要是为了提高朴素算法的复杂度&#xff0c;即O(n^2)的算法&#xff0c;优化为O(n)的算法。 2.常见模板 for (int i 0, j 0; i < n; i ) {while (j < i && check(i, j)) j ;// 具体问题的逻辑 } 常见问题分类&#xff1a;(1) 对于一个序列&am…

knn算法python代码_K-最近邻分类算法(KNN)及python实现

一、引入问题&#xff1a;确定绿色圆是属于红色三角形、还是蓝色正方形&#xff1f;KNN的思想&#xff1a;从上图中我们可以看到&#xff0c;图中的数据集是良好的数据&#xff0c;即都打好了label&#xff0c;一类是蓝色的正方形&#xff0c;一类是红色的三角形&#xff0c;那…

Leetcode 19. 删除链表的倒数第N个节点

原题链接 解法&#xff1a;双指针 思路&#xff1a;第一个点可以能被删除&#xff0c;所以需要一个虚拟头节点。被删除的点位于倒数第n的位置&#xff0c;因为是单链表&#xff0c;即找到倒数n 1最后&#xff0c;想要删除这个节点必须要保留它的前一个节点使其p->next …

rxjava 并行_使用RxJava和Completable并行执行阻塞任务

rxjava 并行通过RxJava 1.1.1中引入的Completable抽象&#xff0c;如何并行执行阻止“仅副作用”&#xff08;也称为void&#xff09;任务的并行执行变得更加容易。 “ 正如您可能已经注意到&#xff0c;阅读我的博客时&#xff0c;我主要专注于软件Craft.io和自动代码测试。 …

系统工程师主要做什么_Filecoin运维工程师在做什么?

前言固然运维这个职能范畴对于绝大多数人来说认知模糊&#xff0c;特别是在分布式存储领域&#xff0c;“运维”常常和“机房”“IDC”等名词相伴&#xff0c;导致很多异业者对于运维的了解停留在物理层面&#xff0c;以搬运机器、上下架服务器、管理网电等为标杆&#xff0c;好…

Leecode 136. 只出现一次的数字

原题链接 解法&#xff1a;异或运算 A^A0 A^0A class Solution { public:int singleNumber(vector<int>& nums) {int ret 0;for(auto p : nums) ret^p;return ret;} };