[ 
https://issues.apache.org/jira/browse/MAPREDUCE-5960?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gera Shegalov updated MAPREDUCE-5960:
-------------------------------------
    Attachment: MAPREDUCE-5960.v02.patch

[~jlowe], thanks for looking into this JIRA. 

I agree that it might not be safe to assume that the remote source be 
accessible from the server side. However, the user will find this out soon 
enough because the job will fail. It's equally wrong to assume the job jar 
won't be accessible, and deprive users from the option to store job bits at 
some other place central, such as s3. We can argue that it would be more 
efficient to first automatically copy the source jar to staging dir, and have 
NM localize from there as opposed to the original source. 

Setting this discussion aside, it does not look good that the submission simply 
fails. I added a unit test for the scenario I believe just has to work 
functionally. 

> JobSubmitter's check whether job.jar is local is incorrect with no authority 
> in job jar path.
> ---------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5960
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5960
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: client
>    Affects Versions: 2.4.0, 2.4.1
>            Reporter: Gera Shegalov
>            Assignee: Gera Shegalov
>         Attachments: MAPREDUCE-5960.v01.patch, MAPREDUCE-5960.v02.patch
>
>
> {code}
> $ mapred job -submit myjob.xml 
> 2014-07-06 15:06:34.731 java[12120:1903] Unable to load realm info from 
> SCDynamicStore
> 14/07/06 15:06:34 WARN util.NativeCodeLoader: Unable to load native-hadoop 
> library for your platform... using builtin-java classes where applicable
> 14/07/06 15:06:34 INFO client.RMProxy: Connecting to ResourceManager at 
> /0.0.0.0:8032
> 14/07/06 15:06:37 WARN conf.Configuration: bad conf file: element not 
> <property>
> 14/07/06 15:06:37 WARN conf.Configuration: bad conf file: element not 
> <property>
> 14/07/06 15:06:37 INFO client.RMProxy: Connecting to ResourceManager at 
> /0.0.0.0:8032
> 14/07/06 15:11:11 INFO mapreduce.JobSubmitter: Cleaning up the staging area 
> /tmp/hadoop-yarn/staging/gshegalov/.staging/job_1404679996131_0004
> Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: 
> viewfs:/user/gshegalov/hadoop-mapreduce-examples-3.0.0-SNAPSHOT.jar, 
> expected: file:///
>       at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:643)
>       at 
> org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:80)
>       at 
> org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:525)
>       at 
> org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:739)
>       at 
> org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:520)
>       at 
> org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:397)
>       at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:337)
>       at 
> org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1902)
>       at 
> org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1870)
>       at 
> org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1835)
>       at 
> org.apache.hadoop.mapreduce.JobSubmitter.copyJar(JobSubmitter.java:286)
>       at 
> org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:254)
>       at 
> org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:301)
>       at 
> org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:389)
>       at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285)
>       at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at javax.security.auth.Subject.doAs(Subject.java:415)
>       at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1626)
>       at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282)
>       at org.apache.hadoop.mapreduce.tools.CLI.run(CLI.java:260)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
>       at org.apache.hadoop.mapred.JobClient.main(JobClient.java:1239)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to