Allow hadoop to run in an osgi container
----------------------------------------

                 Key: HADOOP-1844
                 URL: https://issues.apache.org/jira/browse/HADOOP-1844
             Project: Hadoop
          Issue Type: Improvement
          Components: mapred
            Reporter: David Savage
         Attachments: classpath.patch, tasktracker.patch

I have been running some tests getting hadoop to run within an osgi environment 
(specifically the Newton framework) and this has uncovered a number of minor 
bugs when mapred classes are instantiated from a different start point than 
their main methods.

I have created a number of patches which I'll attach which solve these issues. 
It's possible these patches could be dealt with as separate issues but all are 
required to resolve the osgi issue. Happy to split up if easier to manage 
though.

classpath.patch: this rearranges the classloader hierarchies for Task objects 
such that a Task is able to resolve api classes in the case where the api 
classes are no longer loaded from the system classloader.

tasklog.patch: this ensures the log files are able to be resolved in the case 
where the child process is launched from a different directory to the parent 
process

taskrunner.patch: this enables the TaskRunner to find a log dir in the case 
where the parent jvm is not launched by the hadoop scripts, also allows for a 
client to specify a substitute main class (which delegates to the 
TaskTracker$Child) in this case for purposes of resolving osgi classpaths but 
could be more general? Finally adds some extra logging in case where things go 
wrong.

tasktracker.patch: allow parent to pass through configuration to child 
taskrunner (specifically in this case for purposes of passing classpath and 
laucher to taskrunner)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to