hadoop的metrics
一个成熟的项目通常都会自带提供metric,反映运行时内部的各个信息,以方便进行监控运维。hadoop也不例外,通过jmx可以查看内部各个metrics信息。hadoop的指标主要是自己编写的一套直指标收集工具类。一般监控也是采集jmx,jmx也是由metrics2统计分析出来的
org.apache.hadoop.metrics2
hadoo的metrics2
metrics2主要分为两部分,
- source ,source需要在代码中添加注解或者通过编码采集。这个只有改源码才能改变
- sink, sink是将采集的指标数据写入到指定位置。也可以不写入
hadoop-metrics2.properties
#定义一个叫ganglia的sink,它的入口类是
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
#
*.sink.ganglia.period=10
*.sink.ganglia.supportsparse=true
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
#主要的sink类型,
namenode.sink.ganglia.servers=fc20:8649
datanode.sink.ganglia.servers=fc20:8649
jobtracker.sink.ganglia.servers=fc20:8649
tasktracker.sink.ganglia.servers=fc20:8649
maptask.sink.ganglia.servers=fc20:8649
reducetask.sink.ganglia.servers=fc20:8649
这些指标也可以不采集配置 hadoop-mertircs2.properties
*.sink.hdfs.class=org.apache.hadoop.metrics2.spi.NullContext
hadoop 的metrics2是自己写的,不是用开源方案比如https://metrics.dropwizard.io/4.2.0/getting-started.html#。不过原理是一致的
网友评论