type
status
date
slug
summary
tags
category
icon
password

基本段落

Hadoop Metrics2是一个收集各种指标的监控工具,可应用于Hadoop、HBase、Kylin等大数据组件监控指标收集。主要分为3个主要部分:MetricsSystemImpl、Source和Sink,其中Source和Sink都可以自定义。本文讲述如何自定义Sink,来收集指标入OpenTSDB。 首先来看看这3个部分的代码结构:

MetricsSystemImpl

Source

实现MetricsSource接口以自定义Source
JvmMetrics为例:

Sink

实现MetricsSink以自定义Sink
MetricsSink 接口扩展了 MetricsPlugin 接口,并提供了两个方法:putMetrics() 将度量记录放入汇聚器中,flush() 则刷新任何缓冲的度量数据。
以FileSink为例:
自定义OpenTSDBHttpSink
自定义sink把指标收集到OpenTSDB以实现集群监控,我们以http的方式录入指标到OpenTSDB,因此首先写一个HttpUtils类:

HttpUtils

OpenTSDBHttpSink

在hadoop-common-project/hadoop-common下新建一个org.apache.hadoop.metrics2.sink.opentsdb.OpenTSDBHttpSink类,内容如下:

hadoop-metrics2.properties

修改hadoop-metrics2.properties内容:

部署服务

  1. 打包编译hadoop,编译教程见https://segmentfault.com/a/1190000019146236
  1. 编译完成后,进入hadoop-dist/target/hadoop-2.9.2拷贝.//share/hadoop/common/hadoop-common-2.9.2.jar到hadoop集群的各个节点。
  1. 拷贝hadoop-metrics2.properties文件到各个hadoop节点。
  1. 重启hadoop集群,就可看见监控指标每分钟打入OpenTSDB。

安装OpenTSDB

  1. 编译,在build目录会生成tsdb和tsdb-2.4.0.jar文件,注意:若直接./build.sh报错,则需要把third_party目录下的文件拷到build。
  1. 修改src/opentsdb.conf,主要内容如下:
  1. 启动服务

安装Grafana

配置监控指标

Spark源码分析02 - SparkConf配置管理精准去重-字典编码+Bitmap