Oozie Shell Action не удается запустить контейнер Docker - PullRequest
1 голос
/ 29 октября 2019

В кластере с Hadoop 3.0.0-cdh6.2.0 я пытаюсь запустить контейнер Docker через действие Shell рабочего процесса Oozie.

Docker правильно установлен на каждом узле кластера. Если я подключаюсь через ssh к узлу и пытаюсь запустить команду Docker, все работает правильно. Я хочу запланировать то же самое, что я могу сделать вручную с Oozie, заставить его открыть оболочку на узле кластера и выполнить некоторые команды Docker.

Если я попытаюсь запустить простую команду Docker, такую ​​как docker ps или docker run hello-world, в действии оболочки или в скрипте bash, запущенном Oozie, задание завершится неудачно, и ошибка, которую я могу извлечь из журналов приложения,:

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 version и docker help. Я не могу понять, почему действие, которое я могу выполнить вручную в оболочке, не работает при запуске Oozie.

1 Ответ

2 голосов
/ 29 октября 2019

Сценарий запускается от имени пользователя oozie. Пользователь Oozie может не иметь прав для запуска операций Docker. Добавьте oozie в группу docker.

...