浏览代码

HDFS-4794. Browsing filesystem via webui throws kerberos exception when NN service RPC is enabled in a secure cluster. Contribued by Benoy Antony.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1531794 13f79535-47bb-0310-9956-ffa450edef68
Jing Zhao 11 年之前
父节点
当前提交
fc89594afa

+ 3 - 0
CHANGES.txt

@@ -154,6 +154,9 @@ Release 1.3.0 - unreleased
     MAPREDUCE-5512. TaskTracker hung after failed reconnect to the JobTracker.
     (ivanmi)
 
+    HDFS-4794. Browsing filesystem via webui throws kerberos exception when NN 
+    service RPC is enabled in a secure cluster. (Benoy Antony via jing9)
+
 Release 1.2.2 - unreleased
 
   INCOMPATIBLE CHANGES

+ 6 - 0
src/hdfs/org/apache/hadoop/hdfs/server/datanode/DataNode.java

@@ -221,6 +221,7 @@ public class DataNode extends Configured
   private HttpServer infoServer = null;
   DataNodeInstrumentation myMetrics;
   private static InetSocketAddress nameNodeAddr;
+  private static InetSocketAddress nameNodeRpcAddr;
   private InetSocketAddress selfAddr;
   private static DataNode datanodeObject = null;
   private Thread dataNodeThread = null;
@@ -476,6 +477,7 @@ public class DataNode extends Configured
                                        DFSConfigKeys.DFS_DATANODE_SYNCONCLOSE_DEFAULT);
 
     DataNode.nameNodeAddr = nameNodeAddr;
+    DataNode.nameNodeRpcAddr = NameNode.getAddress(conf);
 
     //initialize periodic block scanner
     String reason = null;
@@ -711,6 +713,10 @@ public class DataNode extends Configured
     return nameNodeAddr;
   }
   
+  public InetSocketAddress getNameNodeRpcAddr() {
+    return nameNodeRpcAddr;
+  }
+  
   public InetSocketAddress getSelfAddr() {
     return selfAddr;
   }

+ 1 - 1
src/hdfs/org/apache/hadoop/hdfs/server/namenode/JspHelper.java

@@ -83,7 +83,7 @@ public class JspHelper {
   public JspHelper() {
     fsn = FSNamesystem.getFSNamesystem();
     if (DataNode.getDataNode() != null) {
-      nameNodeAddr = DataNode.getDataNode().getNameNodeAddr();
+      nameNodeAddr = DataNode.getDataNode().getNameNodeRpcAddr();
     }
     else {
       nameNodeAddr = fsn.getDFSNameNodeAddress(); 

+ 1 - 1
src/hdfs/org/apache/hadoop/hdfs/server/namenode/StreamFile.java

@@ -41,7 +41,7 @@ public class StreamFile extends DfsServlet {
   static DataNode datanode = null;
   static {
     if ((datanode = DataNode.getDataNode()) != null) {
-      nameNodeAddr = datanode.getNameNodeAddr();
+      nameNodeAddr = datanode.getNameNodeRpcAddr();
     }
   }