当前位置: 首页 > news >正文

抓取namenode 50070 jmx的指标信息

在生产实践过程中,需要把data退役之后需要停机下线,在下线之前需要确认机器是否已下线完成,要去namenode的50070界面上查看显然效率低,为了能够快速拿到节点信息,写了简单的脚本。jmx/50070还有很多信息可以获取,可以需求采集需要的指标,可以转成Prometheus的export,或是入到时序数据库。本文只是用于交流和学习。

# -*- coding: utf-8 -*-
__author__ = 'machine'
#date: 20220720
import json
import requestsurl_dict = {'集群1': 'http://192.168.100.1:50070','集群2': 'http://192.168.14.1:50070'}for k,v in url_dict.items():print(" ")print("-----------------------------------------------------------------------------")print("集群名称:",k)#print(v)url=v+str('/jmx?qry=Hadoop:service=NameNode,name=NameNodeInfo')print(url)req = requests.get(url)#print(req)result_json = json.loads(req.text)#print(result_json)livenode=json.loads(result_json['beans'][0]['LiveNodes'])deadnode=result_json['beans'][0]['DeadNodes']print("运行节点的服务状态: ")list_inservernode = []list_decommissioned = []for lip in livenode.values():#print(lip['xferaddr'].split(':')[0])status=lip['adminState'].split(' ')[0]if status == 'Decommissioned':list_decommissioned.append(lip['xferaddr'].split(':')[0])#print("退役节点",lip['xferaddr'].split(':')[0])else:list_inservernode.append(lip['xferaddr'].split(':')[0])#print("在线节点",lip['xferaddr'].split(':')[0])print(" ")print("退役节点")for i in list_decommissioned:print(i)print("在线节点")for i in list_inservernode:print(i)print(" ")#print("-----------------------------------------------------------------------------")print(str('----------------------------- ') + "HDFS空间使用情况" + str(' -----------------------------'))print("HDFS总共空间(TB):",result_json['beans'][0]['Total'] // (1024 * 1024 * 1024 * 1024) ,str('TB'))print("HDFS已使用空间(TB):", result_json['beans'][0]['Used'] // (1024 * 1024 * 1024 * 1024), str('TB'))print("HDFS剩余空间(TB):", result_json['beans'][0]['Free'] // (1024 * 1024 * 1024 * 1024), str('TB'))print("HDFS已使用空间(使用率)",result_json['beans'][0]['PercentUsed'],str('%'))print("-----------------------------------------------------------------------------")

jmx hadoop部分参数

curl http://192.168.10.2:50070/jmx?

NameNode:50070

qry=Hadoop:service=NameNode,name=RpcActivityForPort8020
MemHeapMaxM
MemMaxM

Hadoop:service=NameNode,name=JvmMetrics

MemHeapMaxM
MemMaxM
Hadoop:service=NameNode,name=FSNamesystem
CapacityTotal
CapacityTotalGB
CapacityRemaining
CapacityRemainingGB
TotalLoad
FilesTotal

Hadoop:service=NameNode,name=FSNamesystemState

NumLiveDataNodes

Hadoop:service=NameNode,name=NameNodeInfo

LiveNodes
java.lang:type=Runtime
StartTime

Hadoop:service=NameNode,name=FSNamesystemState

TopUserOpCounts:timestamp

Hadoop:service=NameNode,name=NameNodeActivity

CreateFileOps
FilesCreated
FilesAppended
FilesRenamed
GetListingOps
DeleteFileOps
FilesDeleted

Hadoop:service=NameNode,name=FSNamesystem

CapacityTotal
CapacityTotalGB
CapacityUsed
CapacityUsedGB
CapacityRemaining
CapacityRemainingGB
CapacityUsedNonDFS

DataNode

DataNode:50075

Hadoop:service=DataNode,name=DataNodeActivity-slave-50010

BytesWritten
BytesRead
BlocksWritten
BlocksRead
ReadsFromLocalClient
ReadsFromRemoteClient
WritesFromLocalClient
WritesFromRemoteClient
BlocksGetLocalPathInfo

http://www.lryc.cn/news/22605.html

相关文章:

  • aspnetcore-browser-refresh.js和Visual Studio Browser Link
  • hadoop 集群常用命令(学习笔记) —— 筑梦之路
  • ARC142D Deterministic Placing
  • 阶段八:服务框架高级(第二章:分布式事务)
  • RPC异步化原理
  • C# 多窗口切换的实现
  • 【深度学习】RNN
  • 招聘岗位,机会难得
  • web打印的几种方法(2023)
  • 代码随想录算法训练营day44 | 动态规划之完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ
  • IntelliJ IDEA 实用插件推荐(包含使用教程)
  • WideDeep模型
  • nacos集群模式+keepalived搭建高可用服务
  • 吉利「银河」负重突围
  • QT之图形视图框架概述——Graphics View Framework
  • 【SQL开发实战技巧】系列(二十二):数仓报表场景(上) 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
  • 小米无线AR眼镜探索版细节汇总
  • Web3中文|Litra:简洁而优美的NFT流动性协议,能给NFT市场带来什么?
  • SSL证书对虚拟主机的用处有哪些?
  • SpringCloud之MQ笔记分享
  • 动态规划背包问题
  • OpenCV4.x图像处理实例-张嘴和闭嘴检测
  • 软考高级系统分析师系列论文之十二:论实时控制系统与企业信息系统集成在工业控制的常规应用
  • 蓝桥杯入门即劝退(二十三)货物摆放问题
  • 经验之谈——指标异常了怎么办?
  • 影视领域解说电影怎样做才会更加出彩?
  • 【Spring6】| Spring对IoC的实现(核心重点)
  • 部门来了个测试工程师,听说是00后,实在是太卷了.....
  • 冲冲冲,力扣javascript刷题——数组总结
  • 使用kotlin编写html dsl框架