Hadoop Metrics2

Apache Hadoop 0.20.203 and Later, and CDH4 (metrics2)
从Apache Hadoop 0.20.203开始,metrics2就必须被使用了,从管理员的角度来说,最值得关注的变化就是配制方法和一些命名系统的变化。其中很多概念和功能集成了metrics1的特点。
Metrics1首要的不足之处是其context和插件之间一对一的关系。对于hadoop来说,能够支持metrics信息能被多个插件同时处理是很有必要的,在metrics2中,我应用metrics sources和sinks。source是产生的metrics信息,而sinks就是消费这些metrics信息。这两个术语,和context与plug-in的关系很接近。在Hadoop内部中需要产生metrics信息的组件必须要实现MetricsSource接口,或者使用java annotation(注解),那些需要接收,和处理metrics信息的组件就需要实现MetricsSink接口。这种架构(基于管理员提供的配置文件)处理metrics在source和sink之前的传递。
默认情况下,所有的sources的metrics信息都会被传递给所有的sinks,这种设计是为了满足通用的需求,比如需要将metrics信息传递给单独的文件,或者给Ganglia。
在特殊情况下,如果有很复杂的数据,管理员可以过滤metrics信息。Filtes可以被应用到source,record,设置是metrics名,需要注意的是,定义了filter,当然会引起负载压力。
hadoop-metrics2.properties就是metrics2的标准配置文件,和metrics1一样,这个配置文件也是java properties文件,但是他使用一些条目来定义默认设置和重写设置。举例如下:
Example 10-5. Sample hadoop-metrics2.properties configuration file
# hadoop-metrics2.properties
# By default, send metrics from all sources to the sink
# named 'file', using the implementation class FileSink.
*.sink.file.class = org.apache.hadoop.metrics2.sink.FileSink
# Override the parameter 'filename' in 'file' for the namenode.
namenode.sink.file.filename = namenode-metrics.log
# Send the jobtracker metrics into a separate file.
jobtracker.sink.file.filename = jobtracker-metrics.log

配置文件中的每一个property都包含四个components:prefix,type,instance,option。
例如:namenode.sink.file.filename,namenode就是prefix,sink就是type,file就是instance,filename就是option。

What about SNMP?
大多数的管理员都遇到过使用SNMP。SNMP和JMX一样是一个metrics提取的一种标准,Hadoop没有直接的SNMP接口,和mib module。用户被鼓励使用JMX,因为JMX提供了相似的性能。

你可能感兴趣的:(hadoop)