Details
-
Improvement
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
I found SlowPeersReport in namenode's jmx is too simple, so i make an inner class called org.apache.hadoop.hdfs.server.blockmanagement.SlowPeerTracker.ReportingNode to make SlowPeersReport's information more specific.Here is an example, the old SlowPeersReport maybe like this:
"SlowPeersReport" :[{"SlowNode":"node4","ReportingNodes":["node1"]},{"SlowNode":"node2","ReportingNodes":["node1","node3"]},{"SlowNode":"node1","ReportingNodes":["node2"]}]
we can see that the old SlowPeersReport just can tell you who is reporting the slownode, actually we can get more information by using the inner class ReportingNode :
"SlowPeersReport" :[{"SlowNode":"node4","ReportingNodes":[{"nodeId":"node1","averageDelay":2000.0,"reportTime":"Tue Aug 27 16:44:49 CST 2019"}]},{"SlowNode":"node2","ReportingNodes":[{"nodeId":"node1","averageDelay":2000.0,"reportTime":"Tue Aug 27 16:44:49 CST 2019"},{"nodeId":"node3","averageDelay":1000.0,"reportTime":"Tue Aug 27 16:44:49 CST 2019"}]},{"SlowNode":"node1","ReportingNodes":[{"nodeId":"node2","averageDelay":2000.0,"reportTime":"Tue Aug 27 16:44:49 CST 2019"}]}]
we can know the averageDelay of reportingnode sending packet to slownode, and the reportTime can tell us when this message reporting to namenode.I think these message will be helpful for us to analyze the slownode problem.