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

有许多选项可用于监视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

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

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

相关文章

python 多线程并发怎么还是顺序执行_python thread 并发且顺序运行示例

python怎么实现用多线程顺序执行python 的GIL规定每个时刻只能有一个线程访问python虚拟机,所以你要用python的多线程来做计算是很不合算的,但是对于IO密集型的应用,例如网络交互来说,自己把自己说服了&#xff0c;是一种理智的胜利&#xff1b;自己被自己感动了&#xff0c;是…

markdown pad激活

<iframe src"https://cn.calcuworld.com/%e5%8d%81%e5%85%ad%e8%bf%9b%e5%88%b6%e8%ae%a1%e7%ae%97%e5%99%a8?iframe1" width"100%" height"400"></iframe> ---恢复内容开始--- 注册码 Soar360live.com GBPduHjWfJU1mZqcPM3BikjYKF…

Java 文件上传组件 Apache Commons FileUpload 应用指南(二)——FileUpload如何工作?

在最初的 http 协议中&#xff0c;没有上传文件方面的功能。RFC1867&#xff08;"Form-based File Upload in HTML".&#xff09; 为 http 协议添加了这个功能。客户端的浏览器&#xff0c;如 Microsoft IE, Mozila, Opera 等&#xff0c;按照此规范将用 户指定的文件…

pytest单侧模块_入门汇总

Pytest简单介绍 &#xff08;pytest是python的一个测试框架&#xff0c;主要是用来进行一些小的测试&#xff09; 安装&#xff1a;pip install -U pytest查看是否安装成功&#xff1a;pytest --version运行&#xff1a;在当前文件所在目录下执行pytest&#xff0c;会寻找当前目…

pythonreshape函数三个参数_详解numpy.ndarray.reshape()函数的参数问题

我们知道numpy.ndarray.reshape()是用来改变numpy数组的形状的&#xff0c;但是它的参数会有一些特殊的用法&#xff0c;这里我们进一步说明一下。代码如下&#xff1a;import numpy as npclass Debug:def __init__(self):self.array1 np.ones(6)def mainProgram(self):print(…

javafx 和swing_集成JavaFX和Swing

javafx 和swing我刚刚完成了对使用Swing的应用程序组件的重写&#xff0c;现在正在使用JavaFX&#xff0c;最后得到了与更大的swing应用程序集成的JavaFX组件。 这是一个很大的应用程序&#xff0c;重写花了我一段时间&#xff0c;最后一切都很好&#xff0c;我很高兴自己做到了…

servlet.jar--jar not loaded错误

出错信息&#xff1a;validateJarFile(D:\Program Files\apache-tomcat-6.0.29\webapps\BookShop\WEB-INF\lib\servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 造成这种错误的原因有两个&#xff1a;serv…

练习6.6

6.6&#xff1a;说明形参、局部变量以及局部静态变量的区别。编写一个函数&#xff0c;同时用到这三种形式。 Ans&#xff1a;形参及函数体内定义的变量&#xff0c;都是局部变量&#xff0c;必须进行初始化&#xff0c;否则会出现未定义行为&#xff0c;这是由于局部变量的生命…

java map 最大值_MAP集合选出最大值

import java.util.Arrays;import java.util.HashMap;import java.util.Map;import org.junit.Test;public class TestHashMap {//统计各空气质量的最高值Testpublic void test1(){String pm25 "农展馆423,东四378,丰台花园406,天坛322,海淀区万柳398," "官园40…

Apache Hadoop HDFS数据节点Apache Mesos框架

介绍 该项目允许在Mesos上运行HDFS。 您应该熟悉HDFS和Mesos基础知识&#xff1a; http://mesos.apache.org/documentation/latest/ https://hadoop.apache.org/docs/r2.7.2/hdfs_design.html 项目要求&#xff1a; Mesos 0.23.0 JDK 1.7.x Hadoop 1.2.x或2.7.x 流浪汉 …

java byte 转 c_C 和 Java 之间的byte数据的转换问题

C语言里通常可能开发人员直接定义struct 作为数据包,因此在java客户端接收struct 中的数据时候,受整数等类型的高低位存放的影响,需要进行相应的转换,参考:转换代码如下:package com.lizongbo.util;/**** Title: 数字转换工具类** Description: 将数字类型与byte数组互相转换**…

MyEclipse中如何设置 jdk 和 jre 编译运行环境

MyEclipse设置JDK和JRE具体的应用版本其实很简单&#xff0c;分为三种状况&#xff1a; 1、设置默认使用的JDK和JRE环境。 具体步骤&#xff1a;菜单window-preferences-java-Installed JRES。 点中了&#xff0c;右边的窗口点ADD按钮&#xff0c;记住选择添加安装了Java目录下…

dubbo集群服务下一台服务挂了对服务调用的影响

一、问题描述&#xff1a;项目中2台dubbo服务给移动端提供查询接口&#xff0c;移动端反应说查询时而很快(秒刷)&#xff0c;时而很慢(4-5秒)。 二、问题分析&#xff1a; 1、问题猜想&#xff1a;网络不稳定原因导致&#xff0c;但是切换公司wifi和手机4G,问题依旧存在。说明问…

C89与C99标准比较

1、增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符&#xff0c;它是初始访问指针所指对象的惟一途径&#xff0c;因此只有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元&#xff0c;或者指向由malloc()函数所分配的内存变量。restri…

java rest客户端_Java中的简单REST客户端

java rest客户端如今&#xff0c;大多数用于与某些服务器通信的移动应用程序都使用REST服务。 这些服务也是JavaScript或jQuery的常用惯例。 现在&#xff0c;我知道在Java中为REST服务创建客户端的2种方法&#xff0c;在本文中&#xff0c;我将尝试演示这两种方法&#xff0c;…

C++并发编程实战---阅读笔记

1. 当把函数对象传入到线程构造函数中时&#xff0c;需要避免“最令人头痛的语法解析”。如果传递了一个临时变量&#xff0c;而不是一个命名的变量&#xff1b;C编译器会将其解析为函数声明&#xff0c;而不是类型对象的定义。 例如&#xff1a; class background_task { publ…

java md2_java中加密的实现方法(MD5,MD2,SHA)

java中加密的实现方法(MD5&#xff0c;MD2&#xff0c;SHA)实例代码&#xff1a;注释都很清楚&#xff0c;import java.security.MessageDigest;import javax.xml.bind.annotation.adapters.HexBinaryAdapter;public class Main {static String src "Hello,sahadev!"…

Java向后不兼容历史的观察

在大多数情况下&#xff0c;Java是一个非常向后兼容的编程语言。 这样做的好处是&#xff0c;与大规模破坏兼容性相比&#xff0c;大型系统通常可以相对容易的方式升级为使用Java的较新版本。 这样做的主要缺点是Java坚持了一些设计决策&#xff0c;这些决策自那时以来就被认为…

C语言中输入输出格式控制

1、C语言中&#xff0c;非零值为真&#xff0c;真用1表示&#xff1b;零值为假&#xff0c;假用0表示。 2、转义字符参考&#xff1a; \a 蜂鸣&#xff0c;响铃 \b 回退&#xff1a;向后退一格 \f 换页 \n 换行 \r 回车&#xff0c;光标到本行行首 \t 水平制表 …

java udp 接受阻塞_Java UDP发送与接收

IP地址&#xff1f;端口号&#xff1f;主机名&#xff1f;什么是Socket?什么是UDP&#xff1f;什么是TCP&#xff1f;UDP和TCP区别&#xff1f;以上问题请自行百度&#xff0c;有标准解释&#xff0c;此处不再赘述&#xff0c;直接上干货&#xff01;实例&#xff1a;发送端&a…