ソースを参照

Merge trunk into HA branch.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-1623@1237157 13f79535-47bb-0310-9956-ffa450edef68
Aaron Myers 13 年 前
コミット
30dd704e6c

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -218,6 +218,9 @@ Release 0.23.1 - Unreleased
 
     HADOOP-7939. Improve Hadoop subcomponent integration in Hadoop 0.23. (rvs via tucu)
 
+    HADOOP-8002. SecurityUtil acquired token message should be a debug rather than info.
+    (Arpit Gupta via mahadev)
+
   OPTIMIZATIONS
 
   BUG FIXES

+ 3 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SecurityUtil.java

@@ -409,7 +409,9 @@ public class SecurityUtil {
     Text service = buildTokenService(addr);
     if (token != null) {
       token.setService(service);
-      LOG.info("Acquired token "+token);  // Token#toString() prints service
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("Acquired token "+token);  // Token#toString() prints service
+      }
     } else {
       LOG.warn("Failed to get token for service "+service);
     }

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -172,6 +172,9 @@ Trunk (unreleased changes)
     HDFS-2768. BackupNode stop can not close proxy connections because
     it is not a proxy instance. (Uma Maheswara Rao G via eli)
 
+    HDFS-2759. Pre-allocate HDFS edit log files after writing version number.
+    (atm)
+
 Release 0.23.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 2 - 2
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/EditLogFileOutputStream.java

@@ -167,10 +167,10 @@ class EditLogFileOutputStream extends EditLogOutputStream {
       LOG.info("Nothing to flush");
       return;
     }
-    preallocate(); // preallocate file if necessary
     doubleBuf.flushTo(fp);
-    fc.force(false); // metadata updates not needed because of preallocation
+    fc.force(false); // metadata updates not needed
     fc.position(fc.position() - 1); // skip back the end-of-file marker
+    preallocate(); // preallocate file if necessary
   }
 
   /**

+ 6 - 4
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLogFileOutputStream.java

@@ -41,6 +41,7 @@ import org.mockito.Mockito;
 
 public class TestEditLogFileOutputStream {
   
+  private final static long PREALLOCATION_LENGTH = (1024 * 1024) + 4;
   private final static int HEADER_LEN = 17;
   private static final File TEST_EDITS =
     new File(System.getProperty("test.build.data","/tmp"),
@@ -65,8 +66,9 @@ public class TestEditLogFileOutputStream {
     assertEquals("Edit log should contain a header as valid length",
         HEADER_LEN, validation.getValidLength());
     assertEquals(1, validation.getNumTransactions());
-    assertEquals("Edit log should have 1MB of bytes allocated",
-        1024*1024, editLog.length());
+    assertEquals("Edit log should have 1MB pre-allocated, plus 4 bytes " +
+        "for the version number",
+        PREALLOCATION_LENGTH, editLog.length());
     
 
     cluster.getFileSystem().mkdirs(new Path("/tmp"),
@@ -79,8 +81,8 @@ public class TestEditLogFileOutputStream {
         validation.getValidLength() > oldLength);
     assertEquals(2, validation.getNumTransactions());
 
-    assertEquals("Edit log should be 1MB long",
-        1024 * 1024, editLog.length());
+    assertEquals("Edit log should be 1MB long, plus 4 bytes for the version number",
+        PREALLOCATION_LENGTH, editLog.length());
     // 256 blocks for the 1MB of preallocation space
     assertTrue("Edit log disk space used should be at least 257 blocks",
         256 * 4096 <= new DU(editLog, conf).getUsed());