配置
修改$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页面查看
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队列平均时间(以毫秒为单位) |