You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cu...@apache.org on 2006/12/13 23:10:41 UTC

svn commit: r486856 - in /lucene/hadoop/trunk: CHANGES.txt src/java/org/apache/hadoop/dfs/DFSShell.java

Author: cutting
Date: Wed Dec 13 14:10:40 2006
New Revision: 486856

URL: http://svn.apache.org/viewvc?view=rev&rev=486856
Log:
HADOOP-454.  Add a 'dfs -dus' command that provides summary disk usage.  Contributed by Hairong.

Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DFSShell.java

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=486856&r1=486855&r2=486856
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Wed Dec 13 14:10:40 2006
@@ -89,6 +89,9 @@
 25. HADOOP-794.  Fix a divide-by-zero exception when a job specifies
     zero map tasks.  (omalley via cutting)
 
+26. HADOOP-454.  Add a 'dfs -dus' command that provides summary disk
+    usage.  (Hairong Kuang via cutting)
+
 
 Release 0.9.1 - 2006-12-06
 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DFSShell.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DFSShell.java?view=diff&rev=486856&r1=486855&r2=486856
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DFSShell.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DFSShell.java Wed Dec 13 14:10:40 2006
@@ -327,6 +327,32 @@
             }
         }
     }
+    
+    /**
+     * Show the summary disk usage of each dir/file in DFS 
+     * that matches the file pattern <i>src</i>
+     * @param src a file pattern specifying source files
+     * @throws IOException  
+     * @see org.apache.hadoop.fs.FileSystem#globPaths(Path)
+     */
+    public void dus(String src) throws IOException {
+      Path paths[] = fs.globPaths( new Path(src) );
+      if( paths==null && paths.length==0 ) {
+        throw new IOException( "dus: No match: " + src );
+      }
+      for(int i=0; i<paths.length; i++) {
+        Path items[] = fs.listPaths( paths[i] );
+        if (items != null) {
+          int totalSize=0;
+          for(int j=0; j<items.length; j++) {
+            totalSize += ((DfsPath)items[j]).getContentsLength();
+          }
+          String pathStr = paths[i].toString();
+          System.out.println(
+              ("".equals(pathStr)?".":pathStr) + "\t" + totalSize);
+        }
+      }
+    }
 
     /**
      * Create the given dir
@@ -594,6 +620,8 @@
               delete(argv[i], true);
           } else if ("-du".equals(cmd)) {
               du(argv[i]);
+          } else if ("-dus".equals(cmd)) {
+              dus(argv[i]);
           } else if ("-ls".equals(cmd)) {
               ls(argv[i], false);
           } else if ("-lsr".equals(cmd)) {
@@ -641,8 +669,9 @@
             System.err.println("Usage: java DFSShell" + 
                 " [-D <[property=value>]");
           } else if ("-ls".equals(cmd) || "-lsr".equals(cmd) ||
-                   "-du".equals(cmd) || "-rm".equals(cmd) ||
-                   "-rmr".equals(cmd) || "-mkdir".equals(cmd)) {
+                   "-du".equals(cmd) || "-dus".equals(cmd) || 
+                   "-rm".equals(cmd) || "-rmr".equals(cmd) || 
+                   "-mkdir".equals(cmd)) {
             System.err.println("Usage: java DFSShell" + 
                 " [" + cmd + " <path>]");
           } else if ("-mv".equals(cmd) || "-cp".equals(cmd)) {
@@ -673,6 +702,7 @@
             System.err.println("           [-ls <path>]" );
             System.err.println("           [-lsr <path>]");
             System.err.println("           [-du <path>]");
+            System.err.println("           [-dus <path>]");
             System.err.println("           [-mv <src> <dst>]");
             System.err.println("           [-cp <src> <dst>]");
             System.err.println("           [-rm <path>]");
@@ -789,6 +819,12 @@
                 } else {
                     du("");
                 }
+            } else if( "-dus".equals(cmd)) {
+              if (i < argv.length) {
+                  exitCode = doall(cmd, argv, conf, i);
+              } else {
+                  dus("");
+              }         
             } else if ("-mkdir".equals(cmd)) {
                 exitCode = doall(cmd, argv, conf, i);
             } else {