Roey Shem Tov created OOZIE-3320:
------------------------------------
Summary: Oozie ShellAction should support absolute bash file path
Key: OOZIE-3320
URL: https://issues.apache.org/jira/browse/OOZIE-3320
Project: Oozie
Issue Type: Improvement
Components: action
Affects Versions: 4.3.1, 5.0.0
Reporter: Roey Shem Tov
Attachments: OOZIE-3086.patch
bash files that saved on shared mount, cannot be execute by the ShellAction in
proper way.
Example:
Worker-1,Worker-2,Worker-3 have shared mount /mnt/hadoop
on /mnt/hadoop there is a file script.sh
Right now there is two options to submit it using ShellAction:
# Upload it to hdfs, add it as a file and submit script.sh
# use bash as exec and file location (/mnt/hadoop/script.sh) as argument (e.g
<exec>bash>/exec><argument>/mnt/hadoop/script.sh</argument>
Best option is that the <exec> command will support shared mounted file :
<exec>/mnt/hadoop/script.sh</exec>
This code is taking only the file name instead it full path:
{code:java}
String exec = actionXml.getChild("exec", ns).getTextTrim();
String execName = new Path(exec).getName();
actionConf.set(ShellMain.CONF_OOZIE_SHELL_EXEC, execName);
{code}
Best option to support shared mount file is to support file:// starting for
bash files that are local (or shared by mount), e.g:
{code:java}
String exec = actionXml.getChild("exec", ns).getTextTrim(); String execName;
String localFilePrefix = "file://";
// When exec starts with 'file://' refer it as local file.
if (exec.startsWith(localFilePrefix))
execName = exec.substring(localFilePrefix.length());
else execName = new Path(exec).getName();
actionConf.set(ShellMain.CONF_OOZIE_SHELL_EXEC, execName);
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)