Bash 从oozie到Hue运行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

我正在使用色调中的oozie编辑器调用bash shell脚本

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

  • 使用“选择文件”上载了shell脚本
  • 提供了shell脚本所在的本地目录路径
  • 给出了存在shell脚本的HDFS路径
  • 但所有这些选项都会产生以下错误:

    无法运行程序“sec_test_oozie.sh”(目录“/data/hadoop/warn/local/usercache/user/appcache/application_1399542362142_0086/container_1399542362142_0086_01_000002”):java.io.IOException:error=2,没有这样的文件或目录

    我应该如何给出shell脚本执行命令?
    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的色调界面非常反直觉

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

  • 该文件位于HDFS文件系统中,位于Oozie可访问的文件夹中
  • 该文件应在shell命令字段中指明
  • 该文件应与任务卡“文件+”部分中的任何其他从属文件一起添加
  • 我想知道为什么他们没有在默认情况下添加您正在调用的脚本文件


    编辑:如果您需要设置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文件时没有此类文件或目录。您是我的解决方案。