配置
修改$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隊列平均時間(以毫秒為單位) |