配置

修改$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页面查看

192.168.20.10http://dev01:50070/jmx
192.168.20.11http://dev02:50075/jmx
192.168.20.12http://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 的统计信息;线程的统计信息;以及事件的统计信息。

内存MemNonHeapUsedMJVM 当前已经使用的 NonHeapMemory 的大小
内存MemNonHeapMaxMJVM 配置的 NonHeapMemory 的大小
内存MemHeapUsedMJVM 当前已经使用的 HeapMemory 的大小
内存MemHeapMaxMJVM 配置的 HeapMemory 的大小
内存MemMaxMJVM 运行时的可以使用的最大的内存的大小
GCGcCountGC次数
线程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当前剩余容量(字节)
CapacityUsedNonDFSDataNodes用于非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发送字节总数
RpcQueueTimeNumOpsRPC调用总数
RpcQueueTimeAvgTimeRPC队列平均时间(以毫秒为单位)

NameNodeActivity

Hadoop:service=NameNode,name=NameNodeActivity
CreateFileOps创建文件的操作总数
FilesRenamed重命名操作的总数(不是重命名的文件或目录数量)
DeleteFileOps删除文件的操作总数

DataNode

JVM监控项

Hadoop:service=DataNode,name=JvmMetrics

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

内存MemNonHeapUsedMJVM 当前已经使用的 NonHeapMemory 的大小
内存MemNonHeapMaxMJVM 配置的 NonHeapMemory 的大小
内存MemHeapUsedMJVM 当前已经使用的 HeapMemory 的大小
内存MemHeapMaxMJVM 配置的 HeapMemory 的大小
内存MemMaxMJVM 运行时的可以使用的最大的内存的大小
GCGcCountGC次数
线程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发送字节总数
RpcQueueTimeNumOpsRPC调用总数
RpcQueueTimeAvgTimeRPC队列平均时间(以毫秒为单位)
05-27 03:51