[ https://issues.apache.org/jira/browse/OOZIE-2576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andras Salamon updated OOZIE-2576: ---------------------------------- Priority: Major (was: Blocker) > Oozie ssh action Cannot run program "scp" > ----------------------------------------- > > Key: OOZIE-2576 > URL: https://issues.apache.org/jira/browse/OOZIE-2576 > Project: Oozie > Issue Type: Bug > Components: action > Affects Versions: 4.0.0 > Environment: Oozie server build version: 4.0.0-cdh5.2.0 > Reporter: ywheel > Priority: Major > > We used oozie ssh action in a production environment, the following xml codes > is the example: > {noformat} > <workflow-app name="TestSsh" xmlns="uri:oozie:workflow:0.4"> > <start to="ShellAction"/> > <action name="ShellAction"> > <ssh xmlns="uri:oozie:ssh-action:0.1"> > <host>root@192.168.1.154</host> > <command>sh /tmp/test.sh</command> > <capture-output/> > </ssh> > <ok to="end"/> > <error to="kill"/> > </action> > <kill name="kill"> > <message>Action failed, error > message[${wf:errorMessage(wf:lastErrorNode())}]</message> > </kill> > <end name="end"/> > </workflow-app> > {noformat} > However, we meet the errors below: > {noformat} > 2016-06-12 22:30:54,713 INFO org.apache.oozie.action.ssh.SshActionExecutor: > SERVER[Master] USER[hdfs] GROUP[-] TOKEN[] APP[TestSsh] > JOB[0000201-160113124428061-oozie-oozi-W] > ACTION[0000201-160113124428061-oozie-oozi-W@ShellAction] Attempting to copy > ssh base scripts to remote host [root@192.168.1.154] > 2016-06-12 22:30:54,869 WARN org.apache.oozie.action.ssh.SshActionExecutor: > SERVER[Master] USER[hdfs] GROUP[-] TOKEN[] APP[TestSsh] > JOB[0000201-160113124428061-oozie-oozi-W] > ACTION[0000201-160113124428061-oozie-oozi-W@ShellAction] Error while > executing ssh EXECUTION > 2016-06-12 22:30:54,870 WARN org.apache.oozie.command.wf.ActionStartXCommand: > SERVER[Master] USER[hdfs] GROUP[-] TOKEN[] APP[TestSsh] > JOB[0000201-160113124428061-oozie-oozi-W] > ACTION[0000201-160113124428061-oozie-oozi-W@ShellAction] Error starting > action [ShellAction]. ErrorType [ERROR], ErrorCode [UNKOWN_ERROR], Message > [UNKOWN_ERROR: Cannot run program "scp": error=2, No such file or directory] > org.apache.oozie.action.ActionExecutorException: UNKOWN_ERROR: Cannot run > program "scp": error=2, No such file or directory > at > org.apache.oozie.action.ssh.SshActionExecutor.execute(SshActionExecutor.java:599) > at > org.apache.oozie.action.ssh.SshActionExecutor.start(SshActionExecutor.java:204) > at > org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:228) > at > org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:63) > at org.apache.oozie.command.XCommand.call(XCommand.java:281) > at > org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:323) > at > org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:252) > at > org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:174) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > Caused by: java.io.IOException: Cannot run program "scp": error=2, No such > file or directory > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041) > at java.lang.Runtime.exec(Runtime.java:617) > at java.lang.Runtime.exec(Runtime.java:485) > at > org.apache.oozie.action.ssh.SshActionExecutor.executeCommand(SshActionExecutor.java:332) > at > org.apache.oozie.action.ssh.SshActionExecutor.setupRemote(SshActionExecutor.java:376) > at > org.apache.oozie.action.ssh.SshActionExecutor$1.call(SshActionExecutor.java:206) > at > org.apache.oozie.action.ssh.SshActionExecutor$1.call(SshActionExecutor.java:204) > at > org.apache.oozie.action.ssh.SshActionExecutor.execute(SshActionExecutor.java:548) > ... 10 more > Caused by: java.io.IOException: error=2, No such file or directory > at java.lang.UNIXProcess.forkAndExec(Native Method) > at java.lang.UNIXProcess.<init>(UNIXProcess.java:135) > at java.lang.ProcessImpl.start(ProcessImpl.java:130) > at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022) > ... 17 more > {noformat} > I checked the codes in {{org.apache.oozie.action.ssh.SshActionExecutor}} > class, and I found oozie would execute 'scp' command to copy two > files(ssh-base.sh,ssh-wrapper.sh) to the workspace folder on remote host. But > the logs could not show any information about which file is not found. > The workspace folder on remote host was created so the 'ssh'+ 'mkdir' command > was executed successfully before 'scp', which means the authentication from > oozie server to remote host is correct. > And I tried the following command to scp that two shell files manually: > {noformat} > scp -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o > StrictHostKeyChecking=no -o ConnectTimeout=20 > /var/run/cloudera-scm-agent/process/3518-oozie-OOZIE_SERVER/temp/oozie-oozi2411540976346867728.dir/ssh/ssh-base.sh > > /var/run/cloudera-scm-agent/process/-oozie-OOZIE_SERVER/temp/oozie-oozi4864889223161337030.dir/ssh/ssh-wrapper.sh > > root@remotehost:oozie-oozi/0000201-160113124428061-oozie-oozi-W/ShellAction--ssh/ > {noformat} > It works by manually but why oozie server could not run 'scp'? -- This message was sent by Atlassian Jira (v8.3.4#803005)