hadoop-mapreduce-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Zhitomirsky (JIRA)" <j...@apache.org>
Subject [jira] [Created] (MAPREDUCE-6032) Unable to check mapreduce job status if submitted using a non-default namenode
Date Mon, 11 Aug 2014 13:13:11 GMT
Benjamin Zhitomirsky created MAPREDUCE-6032:
-----------------------------------------------

             Summary: Unable to check mapreduce job status if submitted using a non-default
namenode
                 Key: MAPREDUCE-6032
                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6032
             Project: Hadoop Map/Reduce
          Issue Type: Bug
    Affects Versions: 2.4.1, 2.2.1, 2.3.0, 2.2.0, 2.0.6-alpha, 2.1.1-beta, 2.0.5-alpha
         Environment: Any
            Reporter: Benjamin Zhitomirsky
            Assignee: Benjamin Zhitomirsky
             Fix For: trunk


When MRv2 job container runs in a context of non-default file system JobHistoryUtils.java
obtains mapreduce.jobhistory.done-dir and
 mapreduce.jobhistory.intermediate-done-dir as a non-qualified paths (e.g. /mapred/history).
This path is considered to belong to the current container's context. As result the application
history is being written to another file system and job history server is unable to pick it
up, because it expects it to be found on the default file system. Currently providing fully
qualified path to those parameters is not supported as well, because of a bug in JobHistoryEventHandler.

After this fix two scenarios will be supported:
- mapreduce.jobhistory.done-dir and mapreduce.jobhistory.intermediate-done-dir (and the staging
directory BTW) will support a fully qualified path
- If a non-qualified path is configured then it will always be defaulted to the default file
system (core-site.xml). That's how consistency of history location will be archived

Implementation notes:
 - FileSystem#makeQualified throws exception if specified path belongs to another file system.
However FileContext#makeQualified work properly in this case, and this is the meaning of the
fix in JobHistoryEventHandler. I was not ready to change behavior FileSystem#makeQualified
because much more thought is required. I afraid that many users expect such behavior, and
fixing it would break their code.
- The fix in JobHistoryUtils detects non-default namenode configuration only if it comes from
some "real" configuration: core-default.xml is ignored. This is done primary as a kind of
test hook, because otherwise setting fs.defaultFS value during test executions would be always
recognized by  JobHistoryUtils  as a non-default namenode against 'file:///' specified in
core-default.xml. 

(Remark. Note that makeQualified doesn't behave properly with file:/// filesystem, for example:
new Path("file:///dir/subdir").makeQualified(new URI("hdfs://server:8020"), new Path("/dir"))
Returns: "file://server:8020/dir/subdir" which doesn't make sense.
However I don't believe it worth fixing, since nobody really case about local file system
besides tests. My fix just ensures that all tests run smoothly by ignoring core-default.xml
file system in the logic.)






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

Mime
View raw message