Hadoop 重要监控指标
某安卓逆向课程打包下载(92节课)
https://pan.quark.cn/s/53cec8b8055a
某PC逆向课程(100节课打包下载)
https://pan.quark.cn/s/e38f2b24f36c
Hadoop 是一个开源的分布式存储和计算框架,广泛应用于大数据处理。为了确保 Hadoop 集群的稳定运行和性能优化,监控 Hadoop 的关键指标至关重要。本文将介绍 Hadoop 的重要监控指标,并提供详细的代码案例,帮助你更好地监控和管理 Hadoop 集群。
1. Hadoop 监控指标概述
Hadoop 监控指标主要包括以下几个方面:
- NameNode 指标:包括 NameNode 的状态、内存使用、文件系统操作等。
- DataNode 指标:包括 DataNode 的状态、磁盘使用、数据块操作等。
- ResourceManager 指标:包括 ResourceManager 的状态、应用程序队列、资源使用等。
- NodeManager 指标:包括 NodeManager 的状态、容器使用、资源分配等。
- JobHistoryServer 指标:包括历史作业的状态、执行时间、资源消耗等。
2. 使用 JMX 监控 Hadoop 指标
Hadoop 提供了 JMX(Java Management Extensions)接口,可以通过 JMX 获取 Hadoop 的监控指标。以下是一些常用的 JMX 指标和获取方法。
2.1 获取 NameNode 指标
NameNode 的 JMX 接口地址通常为 http://<NameNode_Host>:50070/jmx。以下是一个获取 NameNode 状态的示例代码:
import requests
import jsondef get_namenode_status(namenode_host):url = f"http://{namenode_host}:50070/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus"response = requests.get(url)data = json.loads(response.text)status = data['beans'][0]['State']return statusnamenode_host = "localhost"
status = get_namenode_status(namenode_host)
print(f"NameNode Status: {status}")
2.2 获取 DataNode 指标
DataNode 的 JMX 接口地址通常为 http://<DataNode_Host>:50075/jmx。以下是一个获取 DataNode 状态的示例代码:
import requests
import jsondef get_datanode_status(datanode_host):url = f"http://{datanode_host}:50075/jmx?qry=Hadoop:service=DataNode,name=DataNodeInfo"response = requests.get(url)data = json.loads(response.text)status = data['beans'][0]['DatanodeState']return statusdatanode_host = "localhost"
status = get_datanode_status(datanode_host)
print(f"DataNode Status: {status}")
2.3 获取 ResourceManager 指标
ResourceManager 的 JMX 接口地址通常为 http://<ResourceManager_Host>:8088/jmx。以下是一个获取 ResourceManager 状态的示例代码:
import requests
import jsondef get_resourcemanager_status(resourcemanager_host):url = f"http://{resourcemanager_host}:8088/jmx?qry=Hadoop:service=ResourceManager,name=QueueMetrics,q0=root"response = requests.get(url)data = json.loads(response.text)status = data['beans'][0]['AppsRunning']return statusresourcemanager_host = "localhost"
status = get_resourcemanager_status(resourcemanager_host)
print(f"ResourceManager Running Apps: {status}")
2.4 获取 NodeManager 指标
NodeManager 的 JMX 接口地址通常为 http://<NodeManager_Host>:8042/jmx。以下是一个获取 NodeManager 状态的示例代码:
import requests
import jsondef get_nodemanager_status(nodemanager_host):url = f"http://{nodemanager_host}:8042/jmx?qry=Hadoop:service=NodeManager,name=NodeManagerMetrics"response = requests.get(url)data = json.loads(response.text)status = data['beans'][0]['AllocatedGB']return statusnodemanager_host = "localhost"
status = get_nodemanager_status(nodemanager_host)
print(f"NodeManager Allocated GB: {status}")
2.5 获取 JobHistoryServer 指标
JobHistoryServer 的 JMX 接口地址通常为 http://<JobHistoryServer_Host>:19888/jmx。以下是一个获取 JobHistoryServer 状态的示例代码:
import requests
import jsondef get_jobhistoryserver_status(jobhistoryserver_host):url = f"http://{jobhistoryserver_host}:19888/jmx?qry=Hadoop:service=JobHistoryServer,name=JobHistoryServer"response = requests.get(url)data = json.loads(response.text)status = data['beans'][0]['JobsCompleted']return statusjobhistoryserver_host = "localhost"
status = get_jobhistoryserver_status(jobhistoryserver_host)
print(f"JobHistoryServer Completed Jobs: {status}")
3. 使用 Prometheus 和 Grafana 监控 Hadoop
Prometheus 是一个开源的监控系统和时间序列数据库,Grafana 是一个开源的分析和监控平台。结合 Prometheus 和 Grafana,可以实现对 Hadoop 集群的实时监控和可视化。
3.1 配置 Prometheus 监控 Hadoop
首先,需要配置 Prometheus 以抓取 Hadoop 的 JMX 指标。以下是一个示例 prometheus.yml 配置文件:
global:scrape_interval: 15sscrape_configs:- job_name: 'hadoop'static_configs:- targets: ['namenode:50070', 'datanode:50075', 'resourcemanager:8088', 'nodemanager:8042', 'jobhistoryserver:19888']metrics_path: '/jmx'params:qry: ['Hadoop:service=NameNode,name=NameNodeStatus', 'Hadoop:service=DataNode,name=DataNodeInfo', 'Hadoop:service=ResourceManager,name=QueueMetrics,q0=root', 'Hadoop:service=NodeManager,name=NodeManagerMetrics', 'Hadoop:service=JobHistoryServer,name=JobHistoryServer']
3.2 配置 Grafana 监控 Hadoop
在 Grafana 中,可以通过导入 Hadoop 监控的仪表盘模板来实现监控指标的可视化。以下是一个示例 Grafana 仪表盘配置:
- 在 Grafana 中创建一个新的仪表盘。
- 添加一个新的 Panel,选择 Prometheus 作为数据源。
- 在 Panel 的查询编辑器中输入以下查询:
hadoop_namenode_status{job="hadoop"}
hadoop_datanode_status{job="hadoop"}
hadoop_resourcemanager_status{job="hadoop"}
hadoop_nodemanager_status{job="hadoop"}
hadoop_jobhistoryserver_status{job="hadoop"}
- 配置 Panel 的显示样式和标题,保存仪表盘。
4. 总结
本文介绍了 Hadoop 的重要监控指标,并提供了详细的代码案例,帮助你通过 JMX 接口获取 Hadoop 的监控指标。此外,还介绍了如何使用 Prometheus 和 Grafana 实现 Hadoop 集群的实时监控和可视化。希望这些内容能帮助你更好地监控和管理 Hadoop 集群。如果你有更多的监控技巧或问题,欢迎在评论区分享!
相关文章:
Hadoop 重要监控指标
某安卓逆向课程打包下载(92节课) https://pan.quark.cn/s/53cec8b8055a 某PC逆向课程(100节课打包下载) https://pan.quark.cn/s/e38f2b24f36c Hadoop 是一个开源的分布式存储和计算框架,广泛应用…...
oracle 查询锁表
oracle 查询锁表 SELECT o.object_name, s.sid, s.serial#, p.spid, s.username, s.program FROM v l o c k e d o b j e c t l J O I N d b a o b j e c t s o O N l . o b j e c t i d o . o b j e c t i d J O I N v locked_object l JOIN dba_objects o ON l.object_id …...
进程概念(三)----- fork 初识
目录 前言1. pid && ppid2. forka. 为什么 fork 要给子进程返回 0, 给父进程返回子进程的 pid ?b. 一个函数是如何做到两次的?c. fork 函数在干什么?d. 一个变量怎么做到拥有不同的内容的?e. 拓展:…...
huawei 路由 RIP 协议中三种定时器的工作原理
RFC2453 定义的三种 RIP 协议定时器 更新定时器(Update Timer):用于触发更新报文的发送,超时时间为 30 秒。老化定时器(Age Timer):如果在老化时间内没有收到邻居发送的响应报文,则…...
HTML常见标签——超链接a标签
一、a标签简介 二、a标签属性 href属性 target属性 三、a标签的作用 利用a标签进行页面跳转 利用a标签返回页面顶部以及跳转页面指定区域 利用a标签实现文件下载 一、a标签简介 <a>标签用于做跳转、导航,是双标签,记作<a></a>&#…...
Python 爬虫入门(一):从零开始学爬虫 「详细介绍」
Python 爬虫入门(一):从零开始学爬虫 「详细介绍」 前言1.爬虫概念1.1 什么是爬虫?1.2 爬虫的工作原理 2. HTTP 简述2.1 什么是 HTTP?2.2 HTTP 请求2.3 HTTP 响应2.4 常见的 HTTP 方法 3. 网页的组成3.1 HTML3.2 CSS3.…...
Linux嵌入式学习——数据结构——概念和Seqlist
数据结构 相互之间存在一种或多种特定关系的数据元素的集合。 逻辑结构 集合,所有数据在同一个集合中,关系平等。 线性,数据和数据之间是一对一的关系。数组就是线性表的一种。 树, 一对多 图,多对多 …...
iOS ------ Block的相关问题
Block的定义 Block可以截获局部变量的匿名函数, 是将函数及其执行上下文封装起来的对象。 Block的实现 通过Clang将以下的OC代码转化为C代码 // Clang xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m//main.m #import <Foundation/Foundation.…...
conda issue
Conda 是一个跨平台、通用的二进制包管理器。它是 Anaconda 安装使用的包管理器,但它也可能用于其他系统。Conda 完全用 Python 编写,并且是 BSD 许可的开源。通用意味着大部分的包都可以用它进行管理,很像一个跨平台版本的apt或者yum&#x…...
为了解决地图引入鉴权失败的解决方案
在以下文件中需要添加相应代码 app/controller/CollageProduct.php app/view/designer_page/designer_editor.html app/view/designer_page/designer.html app/controller/Freight.php app\controller\Business.php app\controller\DesignerPage.php 只有这样才能保证htt…...
[ptrade交易实战] 第十八篇 期货查询类函数和期货设置类函数
前言 今天主要和大家分享的是期货查询类的函数和期货设置类的函数! 具体的开通渠道可以看文章末尾! 一、get_margin_rate—— 获取用户设置的保证金比例 保证金是期货交易中的一个重点,这个函数就是用来获取我们设置的保证金比例的&#…...
STM32智能家居控制系统教程
目录 引言环境准备智能家居控制系统基础代码实现:实现智能家居控制系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:家居监测与优化问题解决方案与优化收尾与总结 1. 引言 智能家居控制系统通…...
FPGA 中的 IOE与IO BANK
IO bank(输入/输出bank) 定义:IO bank 是 FPGA 中一组 IOE 的集合,通常共享相同的电源电压、时钟域和时序管理。每个 IO bank 包含多个 IOE,它们可以根据需要分配给不同的信号处理任务。作用:IO bank 的存…...
ADetailer模型+Stable Diffusion的inpainting功能是如何对遮罩区域进行修复生成的ADetailer
模型选则: face_yolov8n.pt 和 face_yolov8s.pt: 用途:用于人脸检测。特点:YOLOv8n 是轻量级版本,适合资源有限的设备;YOLOv8s 是标准版本,检测精度更高。 hand_yolov8n.pt: 用途&am…...
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:An overview of machine unlearning
1 介绍 年份:2024 作者: 期刊: High-Confidence Computing(2区) 引用量:0 Li C, Jiang H, Chen J, et al. An overview of machine unlearning[J]. High-Confidence Computing, 2024: 100254 本文详细提供…...
【机器学习】Jupyter Notebook如何使用之基本步骤和进阶操作
引言 Jupyter Notebook 是一个交互式计算环境,它允许创建包含代码、文本和可视化内容的文档 文章目录 引言一、基本步骤1.1 启动 Jupyter Notebook1.2 使用 Jupyter Notebook 仪表板1.3 在笔记本中工作1.4 常用快捷键1.5 导出和分享笔记本 二、进阶用法2.1 组织笔…...
C++ | Leetcode C++题解之第279题完全平方数
题目: 题解: class Solution { public:// 判断是否为完全平方数bool isPerfectSquare(int x) {int y sqrt(x);return y * y x;}// 判断是否能表示为 4^k*(8m7)bool checkAnswer4(int x) {while (x % 4 0) {x / 4;}return x % 8 7;}int numSquares(i…...
Vue 3 响应式高阶用法之 `shallowRef()` 详解
Vue 3 响应式高阶用法之 shallowRef() 详解 文章目录 Vue 3 响应式高阶用法之 shallowRef() 详解简介一、使用场景1.1 深层嵌套对象的性能优化1.2 需要部分响应式的场景 二、基本使用2.1 引入 shallowRef2.2 定义 shallowRef 三、功能详解3.1 浅层响应式3.2 与 ref 的对比 四、…...
流量录制与回放:jvm-sandbox-repeater工具详解
在软件开发和测试过程中,流量录制与回放是一个非常重要的环节,它可以帮助开发者验证系统在特定条件下的行为是否符合预期。本文将详细介绍一款强大的流量录制回放工具——jvm-sandbox-repeater,以及如何利用它来提高软件测试的效率和质量。 …...
内网渗透—内网穿透工具NgrokFRPNPSSPP
前言 主要介绍一下常见的隧道搭建工具,以此来达到一个内网穿透的目的。简单说一下实验滴环境吧,kali作为攻击机,winserver2016作为目标靶机。 kali 192.168.145.171 winserver2016 10.236.44.127 显然它们处于两个不同的局域网,…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
