浏览代码

HADOOP-9241. DU refresh interval is not configurable. Contributed by Harsh J. (harsh)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1439129 13f79535-47bb-0310-9956-ffa450edef68
Harsh J 12 年之前
父节点
当前提交
96d724b441

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

@@ -459,6 +459,8 @@ Release 2.0.3-alpha - Unreleased
     HADOOP-9231. Parametrize staging URL for the uniformity of
     distributionManagement. (Konstantin Boudnik via suresh)
 
+    HADOOP-9241. DU refresh interval is not configurable (harsh)
+
   OPTIMIZATIONS
 
     HADOOP-8866. SampleQuantiles#query is O(N^2) instead of O(N). (Andrew Wang

+ 4 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/CommonConfigurationKeysPublic.java

@@ -54,6 +54,10 @@ public class CommonConfigurationKeysPublic {
   public static final String  FS_DF_INTERVAL_KEY = "fs.df.interval"; 
   /** Default value for FS_DF_INTERVAL_KEY */
   public static final long    FS_DF_INTERVAL_DEFAULT = 60000;
+  /** See <a href="{@docRoot}/../core-default.html">core-default.xml</a> */
+  public static final String  FS_DU_INTERVAL_KEY = "fs.du.interval";
+  /** Default value for FS_DU_INTERVAL_KEY */
+  public static final long    FS_DU_INTERVAL_DEFAULT = 60000;
 
 
   //Defaults are not specified for following keys

+ 3 - 2
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/DU.java

@@ -20,6 +20,7 @@ package org.apache.hadoop.fs;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.CommonConfigurationKeys;
 import org.apache.hadoop.util.Shell;
 
 import java.io.BufferedReader;
@@ -64,8 +65,8 @@ public class DU extends Shell {
    * @throws IOException if we fail to refresh the disk usage
    */
   public DU(File path, Configuration conf) throws IOException {
-    this(path, 600000L);
-    //10 minutes default refresh interval
+    this(path, conf.getLong(CommonConfigurationKeys.FS_DU_INTERVAL_KEY,
+                CommonConfigurationKeys.FS_DU_INTERVAL_DEFAULT));
   }
 
   /**

+ 6 - 0
hadoop-common-project/hadoop-common/src/main/resources/core-default.xml

@@ -439,6 +439,12 @@
   <description>Disk usage statistics refresh interval in msec.</description>
 </property>
 
+<property>
+  <name>fs.du.interval</name>
+  <value>60000</value>
+  <description>File space usage statistics refresh interval in msec.</description>
+</property>
+
 <property>
   <name>fs.s3.block.size</name>
   <value>67108864</value>

+ 6 - 1
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestDU.java

@@ -24,6 +24,9 @@ import java.io.IOException;
 import java.io.RandomAccessFile;
 import java.util.Random;
 
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.CommonConfigurationKeys;
+
 /** This test makes sure that "DU" does not get to run on each call to getUsed */ 
 public class TestDU extends TestCase {
   final static private File DU_DIR = new File(
@@ -106,7 +109,9 @@ public class TestDU extends TestCase {
   public void testDUGetUsedWillNotReturnNegative() throws IOException {
     File file = new File(DU_DIR, "data");
     assertTrue(file.createNewFile());
-    DU du = new DU(file, 10000);
+    Configuration conf = new Configuration();
+    conf.setLong(CommonConfigurationKeys.FS_DU_INTERVAL_KEY, 10000L);
+    DU du = new DU(file, conf);
     du.decDfsUsed(Long.MAX_VALUE);
     long duSize = du.getUsed();
     assertTrue(String.valueOf(duSize), duSize >= 0L);