[ http://issues.apache.org/jira/browse/HADOOP-477?page=comments#action_12435036 ] arkady borkovsky commented on HADOOP-477: -----------------------------------------
As Owen pointed out few weeks ago, all what is necessary is to provide a standard environment for the executables. I suggest 3 things to be done: (1) privide a "standard", meaningful, and documented environment to commands executed by streaming. It should include at least -- PATH that has /usr/bin, etc. -- so that commands like grep, perl, python, awk etc are found, as well as hadoop uitilities -- LD_LIBRARY_PATH (to get to C and C++ shared libraries) (2) allow the user to provide a file (similar to .cshrc) to define environment variables. (3) allow the user to define environment variable in the Streaming command. The (1) is probably a must. I strongly prefer (2) over (3), as I would just borrow someone set up that works, and I do not know what are the actual necessary setting. > Streaming should execute Unix commands and scripts in well known languages > without user specifying the path > ----------------------------------------------------------------------------------------------------------- > > Key: HADOOP-477 > URL: http://issues.apache.org/jira/browse/HADOOP-477 > Project: Hadoop > Issue Type: Bug > Components: contrib/streaming > Reporter: arkady borkovsky > > If the executables for -mapper or -reducer are well-known (grep, cat, awk), > Streaming should make sure that the executable is found. > If a script for -mapper or -reducer are in a well-known language (.pl, .py), > Streaming should execute it with the correct language processor. > Reason: > many jobs get started from machines with a different environment from that on > the cluster. > On another hand, different clusters may have different environments. > Also, a user may have no access to the cluster machines. > Because of this, a user may be unable to specify correct paths for standard > commands, and correct language processors for scripts. > Implementation: > Stream may tailr the commands by prepending the path, or the name of language > processor. > Another solution is to make sure that the commands are executed in a > "meaningful" environment (with good $PATH, and other variables Unix users are > accustomed to count upon). > Once again, Streaming is user facing tool -- it is not a library or a > hackable example that the users are to modify for their needs. So it should > work out of the box. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira