我正在使用Hue的oozie编辑器调用bash shell脚本。
我在工作流程中使用了shell操作,并在shell命令中尝试了以下不同的选项:
但是所有这些选项都出现了以下错误:
无法运行程序" sec_test_oozie.sh" (在目录" / data / hadoop / yarn / local / usercache / user / appcache / application_1399542362142_0086 / container_1399542362142_0086_01_000002"):java.io.IOException:error = 2,没有这样的文件或目录
我应该如何提供shell脚本执行命令? shell脚本文件应该驻留在哪里?
答案 0 :(得分:5)
您需要添加文件" sec_test_oozie.sh"在oozie shell步骤中。在添加文件
答案 1 :(得分:5)
我认为你是从windows机器创建文件,这是添加额外的换行符。你需要将shell脚本文件转换为Unix格式。我也遇到了同样的问题。然后我从Linux系统创建了该文件它开始工作。错误是错误的。
答案 2 :(得分:3)
我想扩展@SergioRG的答案。 Oozie,至少与Cloudera的Hue界面非常违反直觉。
要运行脚本文件,应满足三个条件:
答案 3 :(得分:0)
您是否使用Hue文件浏览器编辑sec_test_oozie.sh?根据您的Hue版本,它可能已损坏它:hue-list
答案 4 :(得分:0)
我遇到了同样的问题,问题是该脚本在工作流尝试将其解析为属性行时回显了一些不相关的行。 Oozie提供了java.io.IOException: error=2, No such file or directory
的非常不相关的错误消息,这只会增加混乱。
<file>
添加脚本。<capture-output/>
,那么您必须确保您的脚本仅打印&#34; key = value&#34;行,就像java属性一样,否则你会看到java.io.IOException: error=2, No such file or directory
的错误,其路径指向.../yarn/local/usercache/...
答案 5 :(得分:0)
我们在一个测试脚本上遇到了这个问题,基本上如果你使用的编辑器向文件添加了奇怪的字符或行尾,它会抛出这个错误,因为脚本不能在容器中使用。
尝试使用 nano file.sh
查看是否出现任何奇怪的字符。然后使用 hdfs dfs -put file.sh /path/you/need
答案 6 :(得分:-1)
“没有这样的文件或目录”oozie无法找到该文件。请检查命令中的AddPath设置。
在编辑节点seciton中,获取oozie应用程序hdfs路径。
在hdfs oozie应用程序路径中上传shell脚本。
在oozie编辑节点步骤中,Shell命令 - 指定上载的shell脚本名称。
下面会有AddPath选项,然后添加文件,添加上传到hdfs路径中的shell脚本。
答案 7 :(得分:-1)
从我的shell脚本中删除#!/ bin / bash帮助我