Przeglądaj źródła

Reinstate resolve path fixes for viewfs. (Siddharth Seth via llu)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/MR-279@1143626 13f79535-47bb-0310-9956-ffa450edef68
Luke Lu 14 lat temu
rodzic
commit
952de25e49

+ 2 - 0
mapreduce/CHANGES.txt

@@ -5,6 +5,8 @@ Trunk (unreleased changes)
 
     MAPREDUCE-279
 
+    Reinstate resolve path fixes for viewfs. (Siddharth Seth via llu)
+
     Major ASM cleanup. Streamlining classes, interface and events. (vinodkv)
 
     (1) Faster retries from AM to HistoryServer (2) Correct diagnostics for

+ 6 - 3
mapreduce/mr-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/job/impl/TaskAttemptImpl.java

@@ -488,7 +488,8 @@ public abstract class TaskAttemptImpl implements
     FileStatus fstat = fc.getFileStatus(file);
     LocalResource resource =
         recordFactory.newRecordInstance(LocalResource.class);
-    resource.setResource(ConverterUtils.getYarnUrlFromPath(fstat.getPath()));
+    resource.setResource(ConverterUtils.getYarnUrlFromPath(fc.resolvePath(fstat
+        .getPath())));
     resource.setType(type);
     resource.setVisibility(visibility);
     resource.setSize(fstat.getLen());
@@ -678,14 +679,16 @@ public abstract class TaskAttemptImpl implements
       Map<String, Path> classPaths = new HashMap<String, Path>();
       if (pathsToPutOnClasspath != null) {
         for (Path p : pathsToPutOnClasspath) {
-          p = p.makeQualified(remoteFS.getUri(),remoteFS.getWorkingDirectory());
+          p = remoteFS.resolvePath(p.makeQualified(remoteFS.getUri(),
+              remoteFS.getWorkingDirectory()));
           classPaths.put(p.toUri().getPath().toString(), p);
         }
       }
       for (int i = 0; i < uris.length; ++i) {
         URI u = uris[i];
         Path p = new Path(u);
-        p = p.makeQualified(remoteFS.getUri(), remoteFS.getWorkingDirectory());
+        p = remoteFS.resolvePath(p.makeQualified(remoteFS.getUri(),
+            remoteFS.getWorkingDirectory()));
         // Add URI fragment or just the filename
         Path name = new Path((null == u.getFragment())
           ? p.getName()