配置

修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh

# 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码
export JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port"
# 在源hadoop-env.sh中存在$JMX_OPTS之前的代码,JMX_OPTS=8006表示设置jmx的端口
export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS $JMX_OPTS=8006"
export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS $JMX_OPTS=8007"
export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS $JMX_OPTS=8060"

web页面查看

IP

访问地址

192.168.20.10

http://dev01:50070/jmx

192.168.20.11

http://dev02:50075/jmx

192.168.20.12

http://dev02:50075/jmx

Hadoop监控项

指标信息来源:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/Metrics.html

NameNode

JVM监控项

Hadoop:service=NameNode,name=JvmMetrics

JvmMetrics 主要统计的信息包括:内存的使用状态信息; GC 的统计信息;线程的统计信息;以及事件的统计信息。

类型

指标项

说明

内存

MemNonHeapUsedM

JVM 当前已经使用的 NonHeapMemory 的大小

内存

MemNonHeapMaxM

JVM 配置的 NonHeapMemory 的大小

内存

MemHeapUsedM

JVM 当前已经使用的 HeapMemory 的大小

内存

MemHeapMaxM

JVM 配置的 HeapMemory 的大小

内存

MemMaxM

JVM 运行时的可以使用的最大的内存的大小

GC

GcCount

GC次数

线程

ThreadsNew

当前线程的处于 NEW 状态下的线程数量

线程

ThreadsRunnable

当前线程的处于 RUNNABLE 状态下的线程数量

线程

ThreadsBlocked

当前线程的处于 BLOCKED 状态下的线程数量

线程

ThreadsWaiting

当前线程的处于 WAITING 状态下的线程数量

线程

ThreadsTimedWaiting

当前线程的处于 TIMED_WAITING 状态下的线程数量

线程

ThreadsTerminated

当前线程的处于 TERMINATED 状态下的线程数量

事件

LogFatal

固定时间间隔内的 Fatal 的数量

事件

LogError

固定时间间隔内的 Error 的数量

事件

LogWarn

固定时间间隔内的 Warn 的数量

事件

LogInfo

固定时间间隔内的 Info 的数量

FSNamesystem

Hadoop:service=NameNode,name=FSNamesystem

指标项

说明

MissingBlocks

当前遗失的block数量

ExpiredHeartbeats

失去心跳的总数量

TransactionsSinceLastCheckpoint

自上次检查点以来的事务总数

TransactionsSinceLastLogRoll

自上次编辑日志卷以来的事务总数

LastCheckpointTime

从上一个检查点以来的时间(毫秒)

CapacityTotal

当前数据节点的原始容量(以字节为单位)

CapacityUsed

当前在所有DataNode中使用的容量(以字节为单位)

CapacityRemaining

当前剩余容量(字节)

CapacityUsedNonDFS

DataNodes用于非DFS目的的当前空间(以字节为单位)

TotalLoad

当前连接数

SnapshottableDirectories

可快照目录的当前数量

FilesTotal

当前文件和目录的数量

PendingDataNodeMessageCount

待机NameNode中用于以后处理的挂起的与块相关的消息的当前数量

StaleDataNodes

由于心跳延迟而标记为过期的DataNodes当前数目

Hadoop:service=NameNode,name=FSNamesystemState

指标项

说明

BlocksTotal

系统中当前分配的块数

NumLiveDataNodes

当前运行的数据节点数量

NumDeadDataNodes

当前死亡的数据节点数

VolumeFailuresTotal

所有Datanodes的卷故障总数

EstimatedCapacityLostTotal

容量故障导致的总容量损失估计

RPC

Hadoop:service=NameNode,name=RpcActivityForPort9000(需要进一步确认)

指标项

说明

ReceivedBytes

接收字节总数

SentBytes

发送字节总数

RpcQueueTimeNumOps

RPC调用总数

RpcQueueTimeAvgTime

RPC队列平均时间(以毫秒为单位)

NameNodeActivity

Hadoop:service=NameNode,name=NameNodeActivity

指标项

说明

CreateFileOps

创建文件的操作总数

FilesRenamed

重命名操作的总数(不是重命名的文件或目录数量)

DeleteFileOps

删除文件的操作总数

DataNode

JVM监控项

Hadoop:service=DataNode,name=JvmMetrics

JvmMetrics 主要统计的信息包括:内存的使用状态信息; GC 的统计信息;线程的统计信息;以及事件的统计信息。

类型

指标项

说明

内存

MemNonHeapUsedM

JVM 当前已经使用的 NonHeapMemory 的大小

内存

MemNonHeapMaxM

JVM 配置的 NonHeapMemory 的大小

内存

MemHeapUsedM

JVM 当前已经使用的 HeapMemory 的大小

内存

MemHeapMaxM

JVM 配置的 HeapMemory 的大小

内存

MemMaxM

JVM 运行时的可以使用的最大的内存的大小

GC

GcCount

GC次数

线程

ThreadsNew

当前线程的处于 NEW 状态下的线程数量

线程

ThreadsRunnable

当前线程的处于 RUNNABLE 状态下的线程数量

线程

ThreadsBlocked

当前线程的处于 BLOCKED 状态下的线程数量

线程

ThreadsWaiting

当前线程的处于 WAITING 状态下的线程数量

线程

ThreadsTimedWaiting

当前线程的处于 TIMED_WAITING 状态下的线程数量

线程

ThreadsTerminated

当前线程的处于 TERMINATED 状态下的线程数量

事件

LogFatal

固定时间间隔内的 Fatal 的数量

事件

LogError

固定时间间隔内的 Error 的数量

事件

LogWarn

固定时间间隔内的 Warn 的数量

事件

LogInfo

固定时间间隔内的 Info 的数量

DataNodeActivity

Hadoop:service=DataNode,name=DataNodeActivity-dev02-50010(需要进一步确认)

指标项

说明

BytesWritten

写入DataNode的字节总数

BytesRead

读取DataNode的字节总数

ReadsFromLocalClient

从本地客户端读取操作的总数

ReadsFromRemoteClient

来自远程客户端的读取操作总数

WritesFromLocalClient

本地客户端的写操作总数

WritesFromRemoteClient

远程客户端的写操作总数

RemoteBytesRead

远程客户端读取的字节数

RemoteBytesWritten

远程客户端写入的字节数

RamDiskBytesWrite

写入内存的字节总数

VolumeFailures

发生的卷故障总数

ReadBlockOpNumOps

读操作总数

WriteBlockOpNumOps

写操作总数

ReadBlockOpAvgTime

读操作的平均时间(以毫秒为单位)

WriteBlockOpAvgTime

写操作的平均时间(以毫秒为单位)

TotalWriteTime

写操作花费的总毫秒数

TotalReadTime

读操作花费的总毫秒数

RPC

Hadoop:service=DataNode,name=RpcActivityForPort50020(需要进一步确认)

指标项

说明

ReceivedBytes

接收字节总数

SentBytes

发送字节总数

RpcQueueTimeNumOps

RPC调用总数

RpcQueueTimeAvgTime

RPC队列平均时间(以毫秒为单位)