我在色调中使用oozie编辑器调用bashshell脚本。
我在工作流中使用了shell操作,并在shell命令中尝试了以下不同选项:
使用“选择文件”上载了shell脚本
给出了shell脚本所在的本地目录路径
给出了存在shell脚本的hdfs路径
但所有这些选项都会产生以下错误:
无法运行程序“sec\u test\u oozie.sh”(在目录“/data/hadoop/yarn/local/usercache/user/appcache/application\u 1399542362142\u 0086/container\u 1399542362142\u 0086\u 01\u000002”中):java.io.ioexception:error=2,没有这样的文件或目录
我应该如何给出shell脚本执行命令?shell脚本文件应该驻留在哪里?
7条答案
按热度按时间xmakbtuz1#
我也遇到了同样的问题,问题是当工作流试图将脚本解析为属性行时,脚本会回显一些不相关的行。oozie给出了一个非常不相关的错误信息
java.io.IOException: error=2, No such file or directory
这只会增加混乱。你需要使用
<file>
添加脚本。如果你用过
<capture-output/>
然后必须确保脚本只打印“key=value”行,如java属性,否则会出现错误java.io.IOException: error=2, No such file or directory
有一条路指向.../yarn/local/usercache/...
ozxc1zmp2#
我想您是在windows计算机上创建文件,该计算机正在添加额外的换行符。您需要将shell脚本文件转换为unix。我也遇到了同样的问题。然后,我从linux系统创建了该文件并开始工作。错误是误导。
z18hc3ub3#
你用色调文件浏览器编辑过sec_test_oozie.sh吗?根据你的色调版本,它可能已经损坏了它:色调列表
7hiiyaii4#
我想扩展@sergiorg的答案。oozie,至少cloudera的色调界面是非常违反直觉的。
要运行脚本文件,应满足三个条件:
该文件位于hdfs文件系统中,位于oozie可以访问的文件夹中
该文件应在shell命令字段中指明
该文件应与任务卡的“文件+”部分中的任何其他从属文件一起添加。
我想知道他们为什么不在默认情况下添加您正在调用的脚本文件。
编辑:如果您需要设置path变量(例如path=/usr/local/bin:/usr/bin),请同时检查高级选项(左上角的档位)。
scyqe7ek5#
“没有这样的文件或目录”oozie找不到该文件。请检查命令中的addpath设置。
在编辑节点部分,获取oozie应用程序hdfs路径。
上传hdfs oozie应用程序路径中的shell脚本。
在oozie编辑节点步骤中,shell命令-指定上载的shell脚本名称。
下面有addpath选项,然后添加文件,添加上传到hdfs路径的shell脚本。
balp4ylt6#
卸下#/shell脚本中的bin/bash帮助了我
m1m5dgzv7#
您需要在oozie shell步骤中添加文件“secu test\uoozie.sh”。在“添加文件”中