从oozie到Hue运行shell脚本

时间:2014-05-13 09:57:53

标签: bash hadoop oozie hue

我正在使用Hue的oozie编辑器调用bash shell脚本。

我在工作流程中使用了shell操作,并在shell命令中尝试了以下不同的选项:

  1. 使用'选择文件'
  2. 上传shell脚本
  3. 提供存在shell脚本的本地目录路径
  4. 提供存在shell脚本的HDFS路径
  5. 但是所有这些选项都出现了以下错误:

      

    无法运行程序" 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脚本文件应该驻留在哪里?

8 个答案:

答案 0 :(得分:5)

您需要添加文件" sec_test_oozie.sh"在oozie shell步骤中。在添加文件

答案 1 :(得分:5)

我认为你是从windows机器创建文件,这是添加额外的换行符。你需要将shell脚本文件转换为Unix格式。我也遇到了同样的问题。然后我从Linux系统创建了该文件它开始工作。错误是错误的。

答案 2 :(得分:3)

我想扩展@SergioRG的答案。 Oozie,至少与Cloudera的Hue界面非常违反直觉。

要运行脚本文件,应满足三个条件:

  1. 该文件位于HDFS文件系统上,位于Oozie可访问的文件夹中
  2. 该文件应在shell命令字段
  3. 中指示
  4. 该文件应与任务卡的“文件+”部分中的任何其他相关文件一起添加。
  5. How to add files in the Oozie Hue interface

    我想知道他们为什么不默认添加你正在调用的脚本文件。

    编辑:如果您需要设置路径变量(例如PATH = / usr / local / bin:/ usr / bin),请同时检查高级选项(左上角的齿轮)。

答案 3 :(得分:0)

您是否使用Hue文件浏览器编辑sec_test_oozie.sh?根据您的Hue版本,它可能已损坏它:hue-list

答案 4 :(得分:0)

我遇到了同样的问题,问题是该脚本在工作流尝试将其解析为属性行时回显了一些不相关的行。 Oozie提供了java.io.IOException: error=2, No such file or directory的非常不相关的错误消息,这只会增加混乱。

  1. 您需要使用<file>添加脚本。
  2. 如果您使用<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

将其推回 hdfs

答案 6 :(得分:-1)

“没有这样的文件或目录”oozie无法找到该文件。请检查命令中的AddPath设置。

在编辑节点seciton中,获取oozie应用程序hdfs路径。

在hdfs oozie应用程序路径中上传shell脚本。

在oozie编辑节点步骤中,Shell命令 - 指定上载的shell脚本名称。

下面会有AddPath选项,然后添加文件,添加上传到hdfs路径中的shell脚本。

答案 7 :(得分:-1)

从我的shell脚本中删除#!/ bin / bash帮助我