如果有不清楚可以参考
Telegraf 通过 jolokia 采集 hdfs 指标
修改 <HADOOP_HOME>/etc/hadoop/yarn-env.sh
增加如下内容
export JOLOKIAJAR="$HADOOP_HOME/external_jars/jolokia-jvm-1.6.2-agent.jar"
export YARN_RESOURCEMANAGER_OPTS="${YARN_RESOURCEMANAGER_OPTS} -javaagent:${JOLOKIAJAR}=port=7779,host=0.0.0.0"
export YARN_NODEMANAGER_OPTS="${YARN_NODEMANAGER_OPTS} -javaagent:${JOLOKIAJAR}=port=7780,host=0.0.0.0"
明确我们需要采集的指标. 基于 hadoop 2.8.5
指标参考官网
Apache Hadoop 2.8.5 - Overview
修改 /etc/telegraf/telegraf.conf
文件, 增加如下内容
########################
# RESOURCE_MANAGER #
########################
[[inputs.jolokia2_agent]]
urls = ["<http://txz-data0:7779/jolokia>"] # 访问namenode 绑定的 jolokia
name_prefix = "hadoop.hdfs.resourcemanager." # 写入 influxdb 的 name 前缀
[[inputs.jolokia2_agent.metric]]
name = "RMState"
mbean = "Hadoop:service=ResourceManager,name=ClusterMetrics"
paths = ["NumActiveNMs", "NumLostNMs", "NumUnhealthyNMs", "NumDecommissionedNMs"]
[[inputs.jolokia2_agent.metric]]
name = "ApplicationState"
mbean = "Hadoop:name=QueueMetrics,q0=root,service=ResourceManager" # 取默认 group 为 root 队列 的所有程序
paths = ["AppsSubmitted", "AppsRunning", "AppsPending", "AppsCompleted", "AppsKilled", "AppsFailed",
"AllocatedMB", "AllocatedVCores", "AllocatedContainers", "AvailableMB", "AvailableVCores", "running_0",
"running_60", "running_300", "running_1440"]
[[inputs.jolokia2_agent.metric]]
name = "jvm_runtime"
mbean = "java.lang:type=Runtime"
paths = ["Uptime"]
[[inputs.jolokia2_agent.metric]]
name = "jvm_memory"
mbean = "java.lang:type=Memory"
paths = ["HeapMemoryUsage", "NonHeapMemoryUsage", "ObjectPendingFinalizationCount"]
# [[inputs.jolokia2_agent.metric]]
# name = "ASM_RPCContext" # RM的applications manager(ASM)端口
# mbean = "Hadoop:service=ResourceManager,name=RpcActivityForPort8032"
# paths = ["RpcProcessingTimeAvgTime", "RpcQueueTimeAvgTime"]
####################
# NODE_MANAGER #
####################
[[inputs.jolokia2_agent]]
urls = ["<http://txz-data0:7780/jolokia>"] # 访问namenode 绑定的 jolokia
name_prefix = "hadoop.hdfs.nodemanager." # 写入 influxdb 的 name 前缀
[[inputs.jolokia2_agent.metric]]
name = "jvm_memory"
mbean = "java.lang:type=Memory"
paths = ["HeapMemoryUsage", "NonHeapMemoryUsage", "ObjectPendingFinalizationCount"]