分布式集群监控方案

简介: 一、调研背景 XGboost on Yarn已正式接入流量,目前需要对XGboost集群进行有效监控。为了保证系统的稳定性,可靠性,可运维性。

一、调研背景
XGboost on Yarn已正式接入流量,目前需要对XGboost集群进行有效监控。

为了保证系统的稳定性,可靠性,可运维性。
掌控集群的核心性能指标,了解集群的性能表现;
集群出现问题时及时报警,便于同学及时修复问题;
集群重要指标值异常时进行预警,将问题扼杀在摇篮中,不用等集群真正不可用时才采取行动;
当集群出现问题时,监控系统可以帮助我们更快的定位问题和解决问题。

二、调研目的
为了管理自己搭建的分布式集群,现在调研一下分布式集群的业界常用监控方案,并结合厂内已有的监控方案进行对比。
并选择一个合适的监控方案来对XGboost on Yarn集群进行有效监控。
主机基本监控项,某台机器 OS 层面上的数据,例如 CPU、内存、磁盘、网络、load、网络流量等;
JVM监控项,某台 resourcemanager(或master)机器 jvm 的状态,例如关于线程的信息,GC 的次数和时间,内存使用状况,以及 ERROR、WARN、Fatal 事件出现的次数;
Yarn监控项,resourcemanager(或 master)进程中的统计信息。
探针程序?Yarn容器中XGBoost进程的探针程序?
监控主要需要完成四个部分的工作数据采集、数据聚合、数据存储和数据展现。
三、方案介绍和数据分析
业界监控方案:
1、Ganglia + Nagios + Splunk
监控粒度:Ganglia可以实现对Hadoop的一些merics进行收集和展示,Nagios可以实现对机器网络服务、主机资源的监控,而Splunk可以对日志构建索引快速查看日志
部署成本:需要人工部署几个软件
明显缺点:
该方案未集成对集群节点的管理,仍需要手动修改配置。
源码编译过程十分复杂,主要是需要编译绘图工具和字体工具(在第四部分详述源码编译过程)

2、Apache Ambari
是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等。
Ambari使用Ganglia收集度量指标,用Nagios支持系统报警,当需要引起管理员的关注时(比如,节点停机或磁盘剩余空间不足等问题),系统将向其发送邮件。
FSG数据仓库 > 分布式集群监控方案 > image2017-10-26 10:13:58.png
Ambari Dashboard

监控粒度:做为Apache 顶级项目,对Hadoop生态的支持做的比较好,可以看到Hadoop进程内的merics。
部署成本:CentOS v5.x or 6.x
明显缺点:
不能监控已有的Hadoop集群
依赖需要使用Maven拉取,有部分依赖厂内repository中没有,需要自己install到本地
如果需要对XGBoost进程监控,那么可能需要修改监控程序。
厂内监控方案:
Argus对主机层级有监控,对于yarn集群或者daemon的监控可以通过casio收集后进行展示,只需要将需要收集的信息推送给casio agent即可。
人工维护代码来实现数据采集、报警,数据存储和展示可以使用MySQL和showX平台实现。
因为是人为整合,可以方便的集成对XGBoost进程的监控
四、Centos 4 源码编译Ganglia方法
~/.bashrc:适用于特定用户的bash shell的bash信息(『peter』在bashrc中的配置对于『meter』来说是不起作用的),当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)
~/.bash_profile(debian中为~/.profile):每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。一般情况下,.bash_profile中都会调用~/.bashrc
~/.bash_profile 是交互式、login 方式进入bash 运行的;通过ssh登录主机
~/.bashrc 是交互式 non-login 方式进入bash 运行的;在本机通过terminal登录shell
通常二者设置大致相同,所以通常前者会调用后者。
远程部署时通过调用的是:source ~/.bash_profile
/etc目录的bashrc和profile是系统级(全局)的配置文件,当在用户主目录下找不到.bash_profile 和.bashrc时,就会读取这两个文件。
源码安装ganglia的时候会有很多依赖,最简单的办法是yum在线安装所有的依赖。但很多情况下不一定会有root权限,以及本地repo中未包含相关rpm的问题,软件开发工程师不得不选择源码来编译安装。
在源码编译Ganglia的过程中,我们需要根据错误提示信息来判断仍然需要安装哪些依赖。目前大部分开源软件使用pkg config来获取依赖相关信息,因此墙裂建议在“.bashrc”(配置在.bashrc中主要是为了方便non-login 方式登录机器的操作)中配置PKG_CONFIG_PATH。
以下是本人在安装过程中所使用到的依赖及安装过程:
4.1 Ganglia前置依赖
Build and install FreeType
Build and install fontconfig
Build and install Cairo (after ./configure please make sure freetype and fontconfig are found)
Build and install Harfbuzz
Build and install Pango

Ganglia使用了rrdtool来实现监控数据可视化,

五、风险评估,应对方案
如果需要将开源监控方案引入代码库,则需要根据开源软件管理规范 来进行代码管理,
上面介绍的Ambari使用的是Apache证书,Ganglia使用的是BSD证书,符合使用第三方开源软件的常见法律问题要求。

1、HBase 集群监控系统构建
2、Distributed XGBoost YARN on AWS
3、XGBoost on Yarn架构介绍
4、安装Ganglia监控hadoop集群
5、云计算平台管理的三大利器Nagios、Ganglia和Splunk
6、用 Ganglia 监视企业集群
7、使用Apache Ambari管理Hadoop
8、使用Ambari监控Yarn应用
9、用 Ganglia 监视企业集群
10、使用 Nagios 监视企业集群
11、pkg-config的用法及库搜索路径设置

目录
相关文章
|
4月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
373 2
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
7月前
|
人工智能 负载均衡 Java
Spring AI Alibaba 发布企业级 MCP 分布式部署方案
本文介绍了Spring AI Alibaba MCP的开发与应用,旨在解决企业级AI Agent在分布式环境下的部署和动态更新问题。通过集成Nacos,Spring AI Alibaba实现了流量负载均衡及节点变更动态感知等功能。开发者可方便地将企业内部业务系统发布为MCP服务或开发自己的AI Agent。文章详细描述了如何通过代理应用接入存量业务系统,以及全新MCP服务的开发流程,并提供了完整的配置示例和源码链接。未来,Spring AI Alibaba计划结合Nacos3的mcp-registry与mcp-router能力,进一步优化Agent开发体验。
2585 15
|
8月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
|
7月前
|
NoSQL 算法 安全
redis分布式锁在高并发场景下的方案设计与性能提升
本文探讨了Redis分布式锁在主从架构下失效的问题及其解决方案。首先通过CAP理论分析,Redis遵循AP原则,导致锁可能失效。针对此问题,提出两种解决方案:Zookeeper分布式锁(追求CP一致性)和Redlock算法(基于多个Redis实例提升可靠性)。文章还讨论了可能遇到的“坑”,如加从节点引发超卖问题、建议Redis节点数为奇数以及持久化策略对锁的影响。最后,从性能优化角度出发,介绍了减少锁粒度和分段锁的策略,并结合实际场景(如下单重复提交、支付与取消订单冲突)展示了分布式锁的应用方法。
577 3
|
9月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
810 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
12月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
NoSQL 算法 关系型数据库
分布式 ID 详解 ( 5大分布式 ID 生成方案 )
本文详解分布式全局唯一ID及其5种实现方案,关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式 ID 详解 ( 5大分布式 ID 生成方案 )
|
缓存 NoSQL Java
Spring Boot中的分布式缓存方案
Spring Boot提供了简便的方式来集成和使用分布式缓存。通过Redis和Memcached等缓存方案,可以显著提升应用的性能和扩展性。合理配置和优化缓存策略,可以有效避免常见的缓存问题,保证系统的稳定性和高效运行。
368 3

热门文章

最新文章