Author: todd
Date: Fri Mar 16 00:00:40 2012
New Revision: 1301286
URL: http://svn.apache.org/viewvc?rev=1301286&view=rev
Log:
HDFS-3062. Fix bug which prevented MR job submission from creating delegation
tokens on an HA cluster. Contributed by Mingjie Lai.
Modified:
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
Modified:
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1301286&r1=1301285&r2=1301286&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
(original)
+++
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
Fri Mar 16 00:00:40 2012
@@ -213,6 +213,9 @@ Release 0.23.3 - UNRELEASED
HDFS-3099. SecondaryNameNode does not properly initialize metrics system.
(atm)
+ HDFS-3062. Fix bug which prevented MR job submission from creating
+ delegation tokens on an HA cluster. (Mingjie Lai via todd)
+
BREAKDOWN OF HDFS-1623 SUBTASKS
HDFS-2179. Add fencing framework and mechanisms for NameNode HA. (todd)
Modified:
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java?rev=1301286&r1=1301285&r2=1301286&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
(original)
+++
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java
Fri Mar 16 00:00:40 2012
@@ -840,4 +840,18 @@ public class DistributedFileSystem exten
public void setBalancerBandwidth(long bandwidth) throws IOException {
dfs.setBalancerBandwidth(bandwidth);
}
+
+ /**
+ * Get a canonical service name for this file system. If the URI is logical,
+ * the hostname part of the URI will be returned.
+ * @return a service string that uniquely identifies this file system.
+ */
+ @Override
+ public String getCanonicalServiceName() {
+ if (HAUtil.isLogicalUri(getConf(), getUri())) {
+ return getUri().getHost();
+ } else {
+ return super.getCanonicalServiceName();
+ }
+ }
}
Modified:
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java?rev=1301286&r1=1301285&r2=1301286&view=diff
==============================================================================
---
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
(original)
+++
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestDelegationTokensWithHA.java
Fri Mar 16 00:00:40 2012
@@ -204,6 +204,17 @@ public class TestDelegationTokensWithHA
assertArrayEquals(token.getIdentifier(), token2.getIdentifier());
assertArrayEquals(token.getPassword(), token2.getPassword());
}
+
+ /**
+ * HDFS-3062: DistributedFileSystem.getCanonicalServiceName() throws an
+ * exception if the URI is a logical URI. This bug fails the combination of
+ * ha + mapred + security.
+ */
+ @Test
+ public void testDFSGetCanonicalServiceName() throws Exception {
+ assertEquals(fs.getCanonicalServiceName(),
+ HATestUtil.getLogicalUri(cluster).getHost());
+ }
enum TokenTestAction {
RENEW, CANCEL;