【问题标题】:Oozie Shell Action fails to run Docker containerOozie Shell Action 无法运行 Docker 容器
【发布时间】:2019-10-30 00:50:11
【问题描述】:

在使用 Hadoop 3.0.0-cdh6.2.0 的集群上,我试图通过 Oozie 工作流的 Shell Action 运行 Docker 容器。

Docker 已正确安装在集群的每个节点上。如果我通过 ssh 连接到一个节点并尝试启动 Docker 命令,则一切正常。 我想安排我可以用 Oozie 手动执行的相同操作,让它在集群的一个节点上打开一个 shell 并运行一些 Docker 命令。

如果我尝试启动一个简单的 Docker 命令,例如 docker psdocker run hello-world 在 Oozie 启动的 shell 操作或 bash 脚本中,作业失败,我可以从应用程序日志中检索到的错误是:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:410)
        at org.apache.oozie.action.hadoop.LauncherAM.access$300(LauncherAM.java:55)
        at org.apache.oozie.action.hadoop.LauncherAM$2.run(LauncherAM.java:223)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875)
        at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:217)
        at org.apache.oozie.action.hadoop.LauncherAM$1.run(LauncherAM.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875)
        at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:141)
Caused by: org.apache.oozie.action.hadoop.LauncherMainException
        at org.apache.oozie.action.hadoop.ShellMain.run(ShellMain.java:76)
        at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:104)
        at org.apache.oozie.action.hadoop.ShellMain.main(ShellMain.java:63)
        ... 16 more
Failing Oozie Launcher, Main Class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]

我尝试过的在 Stdoutput 中给出预期结果的唯一命令是 docker versiondocker help。 我不明白为什么我可以在 shell 上手动执行的操作在 Oozie 启动时不起作用。

【问题讨论】:

    标签: bash docker hadoop cloudera oozie


    【解决方案1】:

    脚本以用户oozie 运行。用户 Oozie 可能没有运行 docker 操作的权限。将 oozie 添加到 docker 组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 2019-05-16
      • 1970-01-01
      • 2020-08-28
      • 2019-06-01
      相关资源
      最近更新 更多