[ 
https://issues.apache.org/jira/browse/MAPREDUCE-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983438#action_12983438
 ] 

Allen Wittenauer commented on MAPREDUCE-2265:
---------------------------------------------

Due to multi-architecture JVMs on various OSes (Solaris, OS X, and likely 
others), I doubt we'll ever be able to remove the requirement from native libs 
since the user can supply the -d flag to flip back and forth.  Due to the 
linking requirements, we're sort of stuck here.  Executables are a different 
beast. I personally can't think of a modern OS where the 64-bit variant 
couldn't run its 32-bit variant's executables.  They might be out there, but 
likely rare. So I don't think we're looking at a 32-bit RHEL vs. 64-bit RHEL 
problem.  We're more likely looking at a RHEL5 vs. RHEL6 issue or a SunOS 5.10 
SPARC vs. i386 issue. To which I say:

- Keep the platform structure in libexec
- Make libexec/taskcontroller a shell wrapper (or whatever) that determines the 
proper platform and calls the proper exec

This also enables us to provide a different binary for OSes that provide 
different functionalities. (For example, on Solaris, I'd likely use a pfexec 
equivalent anyway.)

> task-controller and jsvc should install into sbin/<platform>/ directory
> -----------------------------------------------------------------------
>
>                 Key: MAPREDUCE-2265
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-2265
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: build, task-controller, tasktracker
>    Affects Versions: 0.22.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Blocker
>             Fix For: 0.22.0
>
>
> Currently the task-controller and jsvc "live" in the bin/ directory 
> regardless of build platform. This is incorrect since these components are 
> native compiled code and thus are built for a particular architecture. So, 
> when we ship a build of 22, we will want to ship both 32-bit and 64-bit 
> artifacts so users can use these components without rebuilding on their own.
> Additionally, it doesn't make sense for them to be in bin/ since they're not 
> user-facing in any way (i.e a user would never directly invoke them). So I 
> would propose putting them in an sbin directory.
> The final proposed path is $HADOOP_HOME/sbin/<platform>/{jsvc,task-controller}
> Note this is not an incompatible change since these components were not 
> present in any prior apache release.

-- 
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