Oozie SSH行动问题:
问题:我们试图在集群的特定主机上运行几个命令。我们也选择了SSH动作。我们面对这个SSH问题已经有一段时间了。这里真正的问题是什么?请给我指点解决办法。
日志:
oozie-oozi/0000000-131008185935754-oozie-oozi-W/action1--ssh/ AUTH_FAILED:无法执行ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o StrictHostKeyChecking=no -o ConnectTimeout=20 USER@1.2.3.4mkdir -p -o ErrorStream:警告:永久添加主机,1.2.3.4 (RSA)到已知主机列表。权限被拒绝(公开密钥,gssapi-keyex,gssapi-带麦克风,密码)。
org.apache.oozie.action.ActionExecutorException: AUTH_FAILED:无法执行ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o StrictHostKeyChecking=no -o ConnectTimeout=20 user@1.2.3.4mkdir -p ConnectTimeout=20 ErrorStream:警告:将1.2.3.4,192.168.34.208 (RSA)永久添加到已知主机列表中。权限被拒绝(公开密钥,gssapi-keyex,gssapi-带麦克风,密码)。
at org.apache.oozie.action.ssh.SshActionExecutor.execute(SshActionExecutor.java:589)
at org.apache.oozie.action.ssh.SshActionExecutor.start(SshActionExecutor.java:204)
at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:211)
at org.apache.oozie.command.wf.ActionStartXCommand.execute(ActionStartXCommand.java:59)
at org.apache.oozie.command.XCommand.call(XCommand.java:277)
at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:326)
at org.apache.oozie.service.CallableQueueService$CompositeCallable.call(CallableQueueService.java:255)
at org.apache.oozie.service.CallableQueueService$CallableWrapper.run(CallableQueueService.java:175)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)由: java.io.IOException:无法执行ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o StrictHostKeyChecking=no -o ConnectTimeout=20 user@1.2.3.4mkdir -p -p ErrorStream:警告:永久添加'1.2.3.4,1.2.3.4‘(RSA)到已知主机列表。权限被拒绝(公开密钥,gssapi-keyex,gssapi-带麦克风,密码)。
at org.apache.oozie.action.ssh.SshActionExecutor.executeCommand(SshActionExecutor.java:340)
at org.apache.oozie.action.ssh.SshActionExecutor.setupRemote(SshActionExecutor.java:373)
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:547)
... 10 more2013年-10-09 12:48:25,982警告org.apache.oozie.command.wf.ActionStartXCommand: USERuser组- TOKEN[] APPTest Job 0000000-131008185935754-oozie-oozi-W ACTION0000000-131008185935754-oozie-oozi-W@action1悬浮工作流作业id=0000000-131008185935754-oozie-oozi W 2013-09 12:48:27,204警告org.apache.oozie.command.coord.CoordActionUpdateXCommand: USERuser组- TOKEN[] APPTest Job 00000-13100818185935754-oozie-oozi W ACTION0000000-131008185935754-oozie-oozi-W@action1 E1100:命令前提条件在执行前不成立,协同行动无效,错误代码: E1100 2013-10-09 12:59:57,477 INFO org.apache.oozie.command.wf.KillXCommand: USERuser GROUP- TOKEN[] APPTest jobId 00000-131008185935754-oozie-oozi W动作-启动WorkflowKillXCommand for jobId=0000000-131008185935754-oozie-oozi W 2013-09 12:59:59:57,685警告org.apache.oozie.command.wf.KillXCommand组- TOKEN[] APPTest jobId 0000000-131008185935754-oozie-oozi动作- E1100:命令前提条件在执行前不成立,coord操作为空,错误代码: E1100 2013-10-09 12:59:57,686 INFO org.apache.oozie.command.wf.KillXCommand: USERuser GROUP- TOKEN[] APPTest job00000-131008185935754-oozie-oozi W操作- WorkflowKillXCommand WorkflowKillXCommand=0000000-131008185935754-oozie-oozi W 2013-09 13:41:32,654警告org.apache.oozie.command.wf.KillXCommand: USERuser组- TOKEN[] APPTest jobId 0000000-131008185935754-oozie-W操作- E0725:工作流实例不能被杀死,0000000-131008185935754-oozie-W,错误代码: E0725 2013-10-09 13:41:45,199警告org.apache.oozie.command.wf.KillXCommand: USERuser组- TOKEN[] APPTest not 0000000-131008185935754-oozie-oozi W动作- E0725:工作流实例不能被杀死,0000000-131008185935754-oozie-oozi W,错误代码: E0725 2013-10-09 13:42:04,869警告org.apache.oozie.command.wf.ResumeXCommand: USERuser组- TOKEN[] APPTest not 0000000-131008185935754-oozie-W操作- E1100:命令前提条件在执行之前不成立,工作流的状态不被中止,错误代码: E1100 2013-10-09 13:45:56,357警告org.apache.oozie.command.wf.KillXCommand: USERuser组- TOKEN[] APPTest not 0000000-131008185935754-oozie-oozi W动作- E0725:工作流实例不能被杀死,0000000-131008185935754-oozie-oozi W,错误代码: E0725
已试过:
谢谢;
卡萨。
发布于 2013-10-24 21:00:18
我刚刚遇到了一个类似的问题。我有一个可以作为用户运行的案例:
ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o StrictHostKeyChecking=no -o ConnectTimeout=20 USER@1.2.3.4 mkdir -p oozie-oozi/0000000-131008185935754-oozie-oozi-W/action1--ssh/在命令行上手动操作并工作,但通过Oozie作为用户启动时,它失败了。
在我的例子中,失败的原因是我在oozie服务器上的用户和远程计算机上的用户之间设置了无密码ssh。需要做的是在oozie服务器上的oozie和远程计算机上的用户之间设置无密码ssh。换句话说,在oozie服务器上,su到oozie并手动运行上面的命令。如果它失败了,它就会在Oozie失败。如果它有效,那么它应该在Oozie中工作(假设所有其他都是正确的,比如dir权限等等)。
看看您的oozie服务器运行的用户是什么:
ps -ef | grep oozie任何用户,即需要无密码ssh到远程计算机上的用户。
发布于 2014-01-15 10:16:18
无论quux00回答了什么,都是正确的。我只是想补充几点。由于ssh操作中的命令ssh将由oozie用户执行,因此需要将oozie设置为bash用户。
为此,需要更改集群所有节点上的/etc/passwd文件。在/etc/passwd文件中查找以下值(类似于它)。
oozie:x:488:487:Oozie User:/var/lib/oozie:/bin/false 并将其改为
oozie:x:488:487:Oozie User:/var/lib/oozie:/bin/bash这实际上会使oozie用户成为bash用户。然后继续进行oozie用户与任何主机上您想要的其他用户之间的无密码身份验证。
然后再试着重新运行oozie工作。如果有用就告诉我。希望能帮上忙!
发布于 2014-02-20 15:06:42
这是一个非常棘手的问题,我只能破解它。我对所给的答案不满意,所以在这里我的版本。为我跟踪失败(我可以在日志中看到)
ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=no -o StrictHostKeyChecking=no -o ConnectTimeout=20 user@XXX.XX.XX.XXX mkdir -p oozie-oozi/0000067-130808155814753-oozie-oozi-W/mysshjob--ssh/但是,如果尝试使用相同的命令,但删除了KbdInteractiveDevices=no或更改了KbdInteractiveDevices=pam,它就能工作。
ssh -o PasswordAuthentication=no -o KbdInteractiveDevices=pam -o StrictHostKeyChecking=no -o ConnectTimeout=20 user@XXX.XX.XX.XXX mkdir -p oozie-oozi/0000067-130808155814753-oozie-oozi-W/mysshjob--ssh/不管怎样,我认为旧ssh键有问题,所以我试着跟随它,它起作用了。
$ ssh-keygen -t dsa
$ cat ~/.ssh/id_dsa.pub > ~/.ssh/authorized_keys2https://stackoverflow.com/questions/19272430
复制相似问题