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

Chris Nauroth updated MAPREDUCE-6044:
-------------------------------------

    Description: 
After MAPREDUCE-6032, the string of the intermediate done dir will be a fully 
qualified path.

The following code in JobHistoryUtils tries to concat this path and user name 
to create a per-user dir path, using File.separator as the seperator (on 
Windows, it is "\").

{code}
  public static String getHistoryIntermediateDoneDirForUser(Configuration conf) 
throws IOException {
    return getConfiguredHistoryIntermediateDoneDirPrefix(conf) + File.separator
        + UserGroupInformation.getCurrentUser().getShortUserName();
  }
{code}

Therefore, an intermediate done dir for user will become 
"hdfs://localhost:9201/mapred/history/done_intermediate\user". With the scheme 
available in the path, Path class will not replace "\" with "/", and finally FS 
cannot handle this path correctly: it will take "done_intermediateuser" as a 
single directory name.

  was:
After MAPREDUCE-6032, the string of the intermediate done dir will be a fully 
qualified path.

The following code in JobHistroyUtils tries to concat this path and user name 
to create a per-user dir path, using File.separator as the seperator (on 
Windows, it is "\").

{code}
  public static String getHistoryIntermediateDoneDirForUser(Configuration conf) 
throws IOException {
    return getConfiguredHistoryIntermediateDoneDirPrefix(conf) + File.separator
        + UserGroupInformation.getCurrentUser().getShortUserName();
  }
{code}

Therefore, an intermediate done dir for user will become 
"hdfs://localhost:9201/mapred/history/done_intermediate\user". With the scheme 
available in the path, Path class will not replace "\" with "/", and finally FS 
cannot handle this path correctly: it will take "done_intermediateuser" as a 
single directory name.


> Fully qualified intermediate done directory will break per-user dir creation 
> on Windows
> ---------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-6044
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6044
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: jobhistoryserver
>    Affects Versions: 3.0.0, 2.6.0
>         Environment: Windows
>            Reporter: Zhijie Shen
>            Assignee: Zhijie Shen
>         Attachments: MAPREDUCE-6044.1.patch
>
>
> After MAPREDUCE-6032, the string of the intermediate done dir will be a fully 
> qualified path.
> The following code in JobHistoryUtils tries to concat this path and user name 
> to create a per-user dir path, using File.separator as the seperator (on 
> Windows, it is "\").
> {code}
>   public static String getHistoryIntermediateDoneDirForUser(Configuration 
> conf) throws IOException {
>     return getConfiguredHistoryIntermediateDoneDirPrefix(conf) + 
> File.separator
>         + UserGroupInformation.getCurrentUser().getShortUserName();
>   }
> {code}
> Therefore, an intermediate done dir for user will become 
> "hdfs://localhost:9201/mapred/history/done_intermediate\user". With the 
> scheme available in the path, Path class will not replace "\" with "/", and 
> finally FS cannot handle this path correctly: it will take 
> "done_intermediateuser" as a single directory name.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to