在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頁面查看只需要:
df1:50070/jmx
df2:50075/jmx
df3: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隊列平均時間(以毫秒為單位) |