diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java index 9c96c00f05c..5cfafa0c165 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNode.java @@ -2994,6 +2994,14 @@ public class DataNode extends ReconfigurableBase return JSON.toString(info); } + /** + * Return hostname of the datanode. + */ + @Override // DataNodeMXBean + public String getDatanodeHostname() { + return this.hostName; + } + /** * Returned information is a JSON representation of an array, * each element of the array is a map contains the information diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java index d867fa72fe8..2ac7ea10c10 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataNodeMXBean.java @@ -67,6 +67,13 @@ public interface DataNodeMXBean { */ public String getNamenodeAddresses(); + /** + * Gets the datanode hostname. + * + * @return the datanode hostname for the datanode. + */ + public String getDatanodeHostname(); + /** * Gets information of the block pool service actors. * diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/dn.js b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/dn.js index ea963cc37aa..9e2732ca5de 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/dn.js +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/datanode/dn.js @@ -25,7 +25,7 @@ function load() { $.get('/jmx?qry=Hadoop:service=DataNode,name=DataNodeInfo', function(resp) { data.dn = workaround(resp.beans[0]); - data.dn.HostName=window.location.hostname; + data.dn.HostName = resp.beans[0]['DatanodeHostname']; render(); }).fail(show_err_msg); } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java index 4eea89573ea..17bbc21bf77 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDataNodeMXBean.java @@ -82,6 +82,10 @@ public class TestDataNodeMXBean { String namenodeAddresses = (String)mbs.getAttribute(mxbeanName, "NamenodeAddresses"); Assert.assertEquals(datanode.getNamenodeAddresses(),namenodeAddresses); + // get attribute "getDatanodeHostname" + String datanodeHostname = (String)mbs.getAttribute(mxbeanName, + "DatanodeHostname"); + Assert.assertEquals(datanode.getDatanodeHostname(),datanodeHostname); // get attribute "getVolumeInfo" String volumeInfo = (String)mbs.getAttribute(mxbeanName, "VolumeInfo"); Assert.assertEquals(replaceDigits(datanode.getVolumeInfo()),