ITPub博客

首页 > 大数据 > 数据分析 > ganglia 监控hadoop 集群的配置文件问题的一个说明.

ganglia 监控hadoop 集群的配置文件问题的一个说明.

原创 数据分析 作者:babyyellow 时间:2017-05-12 14:38:37 0 删除 编辑
ganglia 是监控的hadoop 集群 的最佳系统. 

安装步骤就不写了. 比较简单.  


主要说下安装过程, hadoop 的metrics 的配置问题. 

hadoop-metrics2.properties  

如果采用默认配置,  一般情况下, 你会苦不堪言. 

主要问题是 默认的把所有的metrics 监控项 全部监控出来了. 

那么就带来了一个问题.  

每个任务, 会派生出 很多container  ,然后每个container 又有很多指标. 

因为一直忙着救火, 就没有 截图保留案底了. 


我统计一下 , 一个hadoo 节点  下面 关于container 的 rrd 文件就有11700+  

单个hadoop 节点 在一天内的监控数据 大于 7.5GB . 

到什么情况呢, 在ganglia 里面已经无法打开单个节点的监控页面了.  直接死了. 

同样的hbase 的 hadoop-metrics2-hbase.properties  中也会涉及到

regionserver 的问题. 每个节点 上有很多regions  ,然后每个region  都涉及到N多的metrics 监控项. 

然后导致rrd 文件暴涨.  效果跟前面一样. 烦死人. 


怎么解决呢?  查文档. 

在官方文档里找到了一点答案. 然后就开始各种演绎. 
Class Description
GlobFilter
A glob pattern filter for metrics.
RegexFilter
A regex pattern filter for metrics


正则表达. 

Fields inherited from class org.apache.hadoop.metrics2.filter.AbstractPatternFilter

EXCLUDE_KEY, EXCLUDE_TAGS_KEY, INCLUDE_KEY, INCLUDE_TAGS_KEY


通过正则表达 可以限制某些metrics 监控项的采集等等. 

到这里问题基本就解决了. 

我列出来我的配置的监控项做个示例: 
more  hadoop-metrics2-hbase.properties 

 hbase.sink.file-all.class=org.apache.hadoop.metrics2.sink.FileSink
 hbase.sink.file-all.filename=all.metrics
############################################################


*.period=10
*.sink.ganglia.period=10
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.source.filter.class=org.apache.hadoop.metrics2.filter.RegexFilter
*.record.filter.class=${*.source.filter.class}
*.metric.filter.class=${*.source.filter.class}
hbase.sink.ganglia.metric.filter.exclude=.*_(max|min|mean|median|percentile)
hbase.sink.ganglia.record.filter.exclude=Regions
hbase.sink.ganglia.source.filter.exclude=.*Regions.*
hbase.sink.ganglia.period=10
hbase.sink.ganglia.servers=gangliaserver:8649




more  hadoop-metrics2.properties 
################################################
*.period=10
*.sink.ganglia.period=10
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.source.filter.class=org.apache.hadoop.metrics2.filter.RegexFilter
*.record.filter.class=${*.source.filter.class}
*.metric.filter.class=${*.source.filter.class}
resourcemanager.sink.ganglia.metric.filter.exclude=.*_(max|min|mean|median|percentile)
resourcemanager.sink.ganglia.source.filter.exclude=.*_(container)*
resourcemanager.sink.ganglia.record.filter.exclude=container*
resourcemanager.sink.ganglia.source.filter.exclude=*.ontainerResource.*

nodemanager.sink.ganglia.metric.filter.exclude=.*_(max|min|mean|median|percentile)
nodemanager.sink.ganglia.source.filter.exclude=.*_(container)*
#nodeemanager.sink.ganglia.record.filter.exclude=*container.*
nodeemanager.sink.ganglia.record.filter.exclude=*container*
nodemanager.sink.ganglia.source.filter.exclude=*ontainerResource*
nodemanager.sink.ganglia.source.filter.exclude=*Containers*

mrappmaster.sink.ganglia.metric.filter.exclude=.*_(max|min|mean|median|percentile)
mrappmaster.sink.ganglia.source.filter.exclude=.*_(container)*
mrappmaster.sink.ganglia.record.filter.exclude=*container.*
mrappmaster.sink.ganglia.record.filter.exclude=*container*
mrappmaster.sink.ganglia.source.filter.exclude=*ontainerResource*

jobhistoryserver.sink.ganglia.metric.filter.exclude=.*_(max|min|mean|median|percentile)
jobhistoryserver.sink.ganglia.record.filter.exclude=*container.*
jobhistoryserver.sink.ganglia.record.filter.exclude=*container*
jobhistoryserver.sink.ganglia.source.filter.exclude=*ontainerResource*
##############################################################
............. 后面的关于server 的配置部分省略.....




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2138975/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908816