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 2007/05/23 22:53:02 UTC

svn commit: r541070 - in /lucene/hadoop/trunk: ./ src/java/org/apache/hadoop/dfs/ src/java/org/apache/hadoop/fs/ src/java/org/apache/hadoop/mapred/

Author: cutting
Date: Wed May 23 13:53:01 2007
New Revision: 541070

URL: http://svn.apache.org/viewvc?view=rev&rev=541070
Log:
HADOOP-1226.  Change HDFS so that paths it returns are always fully qualified.  Contributed by Dhruba.

Modified:
    lucene/hadoop/trunk/CHANGES.txt
    lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DfsPath.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DistributedFileSystem.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FileSystem.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FsShell.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/Path.java
    lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java

Modified: lucene/hadoop/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/CHANGES.txt?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/CHANGES.txt (original)
+++ lucene/hadoop/trunk/CHANGES.txt Wed May 23 13:53:01 2007
@@ -60,6 +60,9 @@
  19. HADOOP-1413.  Add example program that uses Knuth's dancing links
      algorithm to solve pentomino problems.  (omalley via cutting)
 
+ 20. HADOOP-1226.  Change HDFS so that paths it returns are always
+     fully qualified.  (Dhruba Borthakur via cutting)
+
 
 Branch 0.13 (unreleased changes)
 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DfsPath.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DfsPath.java?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DfsPath.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DfsPath.java Wed May 23 13:53:01 2007
@@ -18,7 +18,7 @@
 package org.apache.hadoop.dfs;
 
 import org.apache.hadoop.fs.Path;
-
+import org.apache.hadoop.fs.FileSystem;
 
 /** 
  * DfsPath is a Path that's been annotated with some extra information.
@@ -28,8 +28,11 @@
 class DfsPath extends Path {
   DFSFileInfo info;
 
-  public DfsPath(DFSFileInfo info) {
-    super(info.getPath());
+  /**
+   * DfsPaths are fully qualified with scheme and authority.
+   */
+  public DfsPath(DFSFileInfo info, FileSystem fs) {
+    super((new Path(info.getPath())).makeQualified(fs).toString());
     this.info = info;
   }
 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DistributedFileSystem.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DistributedFileSystem.java?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DistributedFileSystem.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/dfs/DistributedFileSystem.java Wed May 23 13:53:01 2007
@@ -218,7 +218,7 @@
       } else {
         Path results[] = new DfsPath[info.length];
         for (int i = 0; i < info.length; i++) {
-          results[i] = new DfsPath(info[i]);
+          results[i] = new DfsPath(info[i], this);
         }
         return results;
       }

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FileSystem.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FileSystem.java?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FileSystem.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FileSystem.java Wed May 23 13:53:01 2007
@@ -181,32 +181,7 @@
   /** Make sure that a path specifies a FileSystem. */
   public Path makeQualified(Path path) {
     checkPath(path);
-
-    if (!path.isAbsolute())
-      path = new Path(getWorkingDirectory(), path);
-
-    URI pathUri = path.toUri();
-    URI fsUri = getUri();
-      
-    String scheme = pathUri.getScheme();
-    String authority = pathUri.getAuthority();
-
-    if (scheme != null &&
-        (authority != null || fsUri.getAuthority() == null))
-      return path;
-
-    if (scheme == null) {
-      scheme = fsUri.getScheme();
-    }
-
-    if (authority == null) {
-      authority = fsUri.getAuthority();
-      if (authority == null) {
-        authority = "";
-      }
-    }
-
-    return new Path(scheme+":"+"//"+authority + pathUri.getPath());
+    return path.makeQualified(this);
   }
     
   ///////////////////////////////////////////////////////////////

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FsShell.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FsShell.java?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FsShell.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/FsShell.java Wed May 23 13:53:01 2007
@@ -329,7 +329,7 @@
       }
       for (int i = 0; i < items.length; i++) {
         Path cur = items[i];
-        System.out.println(cur + "\t" 
+        System.out.println(cur.toUri().getPath() + "\t" 
                            + (fs.isDirectory(cur) ? 
                               "<dir>" : 
                               ("<r " + fs.getReplication(cur) 

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/Path.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/Path.java?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/Path.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/fs/Path.java Wed May 23 13:53:01 2007
@@ -264,5 +264,35 @@
     }
     return depth;
   }
-  
+
+  /** Returns a qualified path object. */
+  public Path makeQualified(FileSystem fs) {
+    Path path = this;
+    if (!isAbsolute()) {
+      path = new Path(fs.getWorkingDirectory(), this);
+    }
+
+    URI pathUri = path.toUri();
+    URI fsUri = fs.getUri();
+      
+    String scheme = pathUri.getScheme();
+    String authority = pathUri.getAuthority();
+
+    if (scheme != null &&
+        (authority != null || fsUri.getAuthority() == null))
+      return path;
+
+    if (scheme == null) {
+      scheme = fsUri.getScheme();
+    }
+
+    if (authority == null) {
+      authority = fsUri.getAuthority();
+      if (authority == null) {
+        authority = "";
+      }
+    }
+
+    return new Path(scheme+":"+"//"+authority + pathUri.getPath());
+  }
 }

Modified: lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java
URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java?view=diff&rev=541070&r1=541069&r2=541070
==============================================================================
--- lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java (original)
+++ lucene/hadoop/trunk/src/java/org/apache/hadoop/mapred/Task.java Wed May 23 13:53:01 2007
@@ -159,7 +159,13 @@
   public String toString() { return taskId; }
 
   private Path getTaskOutputPath(JobConf conf) {
-    return new Path(conf.getOutputPath(), ("_" + taskId));
+    Path p = new Path(conf.getOutputPath(), ("_" + taskId));
+    try {
+      return p.makeQualified(FileSystem.get(conf));
+    } catch (IOException ie) {
+      LOG.warn(StringUtils.stringifyException(ie));
+      return p;
+    }
   }
   
   /**