自学内容网 自学内容网

【Yarn】Yarn监控调研分析与实现设计

Yarn监控调研分析与实现设计

需求

管理侧

队列指标情况(按时间序列)

  • 已提交的应用数量
  • 正在运行的应用数量
  • 阻塞(正在等待)的应用数量
  • 失败的应用数量
  • kill的应用数量
  • 最大可运行的应用数量
  • 队列分配的资源使用情况(已使用的内存数,已使用的内核数,最大分配的可用的内存数,最大分配的可用的内核数,内存pending数,CPI内核pending数)

ResourceManager(Acticve状态)的JVM情况 (按时间序列)

  • 某一段时间跨度里,1min粒度内发生GC的次数与GC的耗时
  • 是否可以区分不同的GC,回收堆:youngGC 年轻代,OldGC 老年代,MixedGC 收集整个年轻代和部分老年代,FullGC 整个堆GC。 需要借助zabbix,使用java原生命令jstat
  • 堆内存使用率与空闲率
  • 非堆内存使用率与空闲率
  • 线程情况

ResourceManager(Acticve状态)端口RPC情况(按时间序列)

  • 当前连接数
  • 请求处理数
  • 请求处理耗时
  • 请求堆积长度
  • 请求堆积等待耗时

核心端口使用情况(操作数量,操作耗时,队列长度,连接数等)

  • yarn.resourcemanager.address的值,代表ResourceManager的地址端口

    1. 与客户端交互:处理来自客户端的请求,如提交应用程序、查询资源状态等。
    2. 管理ApplicationMaster:启动、管理、重启ApplicationMaster(AM)。AM是用户程序的入口,负责与RM协商资源,并与NodeManager协同运行Container,监控资源消耗。
    3. 管理NodeManager:接收NodeManager的资源汇报信息,并向NodeManager下达管理指令,如杀死Container。
    4. 资源管理与调度:接收ApplicationMaster的资源申请请求,并为之分配资源
  • yarn.resourcemanager.resource-tracker.address的值,代表ResourceManager 的资源跟踪器地址端口

    1. NodeManager通过该地址向RM汇报心跳,领取任务等,主要作用是确保 YARN 集群中的节点能够正确地与 ResourceManager 的 ResourceTracker 组件通信,从而节点能够向 ResourceManager 注册并报告自己的资源状态。如果这个地址配置错误,可能会导致节点无法向 ResourceManager 注册或者资源状态无法正确更新,进而影响到作业和应用的调度和执行。
  • yarn.resourcemanager.scheduler.address 的值,代表ResourceManager 对ApplicationMaster暴露的访问地址。ResourceManager 的调度器的端口,负责分配和管理集群资源。

    1. ApplicationMaster通过该地址向RM申请资源、释放资源等。

普通用户侧

队列指标情况(按时间序列)

  • 已提交的应用数量
  • 正在运行的应用数量
  • 阻塞(正在等待)的应用数量
  • 失败的应用数量
  • kill的应用数量
  • 最大可运行的应用数量
  • 队列分配的资源使用情况(已使用的内存数,已使用的内核数,最大分配的可用的内存数,最大分配的可用的内核数,内存pending数,CPI内核pending数)

采集指标

使用yarn.resourcemanager.webapp.address地址请求JMX

队列相关指标:http://XXXXX:XXXX/jmx?qry=Hadoop:service=ResourceManager,name=QueueMetrics,*

集群相关指标:

http://XXXXX:XXXX/jmx?qry=Hadoop:service=ResourceManager,name=RpcActivityForPort*

http://XXXXX:XXXX/jmx?qry=Hadoop:service=ResourceManager,name=RpcDetailedActivityForPort*

http://XXXXX:XXXX/jmx?qry=Hadoop:service=ResourceManager,name=JvmMetrics

http://XXXXX:XXXX:8088/jmx?Hadoop:service=ResourceManager,name=FSOpDurations

分类 指标Key
NodeUpdateCall NodeUpdateCallNumOps2-NodeUpdateCallNumOps1
NodeUpdateCall NodeUpdateCallAvgTime
UpdateThreadRun UpdateThreadRunNumOps2-UpdateThreadRunNumOps
UpdateThreadRun UpdateThreadRunAvgTime
8031端口操作与耗时 RpcQueueTimeNumOps2-RpcQueueTimeNumOps1
8031端口操作与耗时 RpcQueueTimeAvgTime
8031端口操作与耗时 RpcProcessingTimeNumOps2-RpcProcessingTimeNumOps1
8031端口操作与耗时 RpcProcessingTimeAvgTime
8031端口操作与耗时 NodeHeartbeatNumOps2-NodeHeartbeatNumOps1
8031端口操作与耗时 NodeHeartbeatAvgTime
8031端口连接数与队列 NumOpenConnections
8031端口连接数与队列 CallQueueLength
23130端口操作与耗时 RpcQueueTimeNumOps2-RpcQueueTimeNumOps1
23130端口操作与耗时 RpcQueueTimeAvgTime
23130端口操作与耗时 RpcProcessingTimeNumOps2-RpcProcessingTimeNumOps1
23130端口操作与耗时 RpcProcessingTimeAvgTime
23130端口操作与耗时 AllocateNumOps2-AllocateNumOps1
23130端口操作与耗时 AllocateAvgTime
23130端口连接数与队列 NumOpenConnections
23130端口连接数与队列 CallQueueLength
23140端口操作与耗时 RpcQueueTimeNumOps2-RpcQueueTimeNumOps1
23140端口操作与耗时 RpcQueueTimeAvgTime
23140端口操作与耗时 RpcProcessingTimeNumOps2-RpcProcessingTimeNumOps1
23140端口操作与耗时 RpcProcessingTimeAvgTime
23140端口连接数与队列 NumOpenConnections
23140端口连接数与队列 CallQueueLength
JVM 内存 MemHeapUsedM
JVM 内存 MemHeapMaxM
JVM GC GcCount2-GcCount1
JVM GC (GcTimeMillis2-GcTimeMillis1)/(GcCount2-GcCount1)
CPU 情况 AllocatedVCores
CPU 情况 MaxShareVCores
CPU 情况 MinShareVCores
内存情况 AllocatedMB
内存情况 MaxShareMB
内存情况 MinShareMB
资源等待情况 PendingMB
资源等待情况 PendingVCores
APP 情况 MaxApps
APP 情况 AppsSubmitted2-AppsSubmitted1
APP 情况 AppsRunning
APP 情况 AppsPending
APP 情况 AppsCompleted2-AppsCompleted1
APP 情况 AppsKilled2-AppsKilled1
APP 情况 AppsFailed2-AppsFailed1
Container 情况 AllocatedContainers
Container 情况 PendingContainers

指标链路

消费侧
jmx采集侧
展示侧

原文地址:https://blog.csdn.net/weixin_43820556/article/details/144473900

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!