[ https://issues.apache.org/jira/browse/HADOOP-1844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12549507 ]
Doug Cutting commented on HADOOP-1844: -------------------------------------- A single patch for this is probably best. Some comments: - indentation is not Hadoop standard (2-spaces per level) - non-existent files in the classpath should not throw exceptions, should they? - some unit tests would be good to ensure that these changes are maintained - patches should not include patch-specific comments - i don't like modifying the child's job configuration. can't this be implemented by using 'final' parameters in the tasktracker's configuration, so that job's cannot override them? > 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 > Assignee: Christophe Taton > Attachments: classpath.patch, tasklog.patch, taskrunner.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.