Bash 从oozie到Hue运行shell脚本
我正在使用色调中的oozie编辑器调用bash shell脚本 我在工作流中使用了shell操作,并在shell命令中尝试了以下不同选项:Bash 从oozie到Hue运行shell脚本,bash,hadoop,oozie,hue,Bash,Hadoop,Oozie,Hue,我正在使用色调中的oozie编辑器调用bash shell脚本 我在工作流中使用了shell操作,并在shell命令中尝试了以下不同选项: 使用“选择文件”上载了shell脚本 提供了shell脚本所在的本地目录路径 给出了存在shell脚本的HDFS路径 但所有这些选项都会产生以下错误: 无法运行程序“sec_test_oozie.sh”(目录“/data/hadoop/warn/local/usercache/user/appcache/application_1399542362142_0
shell脚本文件应该驻留在哪里?是否使用色调文件浏览器编辑了sec_test_oozie.sh?根据您的色调版本,它可能已损坏:您需要在oozie shell步骤中添加文件“sec_test_oozie.sh”。在addfiles中,我遇到了相同的问题,问题是当工作流试图将脚本解析为属性行时,脚本回显了一些不相关的行。Oozie给出了一条与
java.io.IOException:error=2非常无关的错误消息,没有这样的文件或目录
,这只会增加混乱
添加脚本
,则必须确保脚本只打印“key=value”行,如java属性,否则您将看到错误java.io.IOException:error=2,没有指向../warn/local/usercache/…
我认为您是从添加额外换行符的windows计算机创建文件。您需要将shell脚本文件转换为Unix格式。我也遇到了同样的问题。然后我从Linux系统创建了该文件并开始工作。错误是误导性的。“没有这样的文件或目录”oozie无法找到该文件。请检查命令中的AddPath设置 在编辑节点中,获取oozie应用程序hdfs路径 在hdfs oozie应用程序路径中上载shell脚本 在oozie编辑节点步骤中,Shell命令-指定上载的Shell脚本名称
下面是添加路径的选项,然后添加文件,添加上传到hdfs路径中的shell脚本。删除#/shell脚本中的bin/bash帮助我扩展了@SergioRG的答案。Oozie,至少Cloudera的色调界面非常反直觉 要运行脚本文件,应满足三个条件:
编辑:如果您需要设置path变量(例如path=/usr/local/bin:/usr/bin),也请检查高级选项(左上角的档位)。我们在测试脚本中遇到了这个问题,基本上如果您使用的编辑器在文件中添加wierd字符或行尾,它将抛出此错误,因为无法在容器中使用脚本
尝试使用
nano file.sh
查看是否出现任何奇怪的字符。然后用hdfs dfs-put file.sh/path/you/need
搜索java.io.IOException:error=2,没有这样的文件或目录您找到了解决方案吗,我也遇到了同样的问题。@CruncherBigData请查看SergioRG解决方案和我编写的扩展名。这个错误让我很困惑,让我头疼。没有罗曼。。。我通过“上载文件”选项从本地上载了脚本文件,并尝试直接给出shell脚本所在的HDFS路径。错误本身令人困惑,它表示在上载.sh文件时没有此类文件或目录。您是我的解决方案。