首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oozie SSH行动

Oozie SSH行动
EN

Stack Overflow用户
提问于 2013-10-09 12:45:18
回答 4查看 9.2K关注 0票数 8

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-带麦克风,密码)。

代码语言:javascript
复制
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-带麦克风,密码)。

代码语言:javascript
复制
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 more

2013年-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

已试过:

  1. 无密码SSH集
  2. 用户代理集
  3. 向所需文件夹授予权限

谢谢;

卡萨。

EN

回答 4

Stack Overflow用户

发布于 2013-10-24 21:00:18

我刚刚遇到了一个类似的问题。我有一个可以作为用户运行的案例:

代码语言:javascript
复制
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服务器运行的用户是什么:

代码语言:javascript
复制
ps -ef | grep oozie

任何用户,即需要无密码ssh到远程计算机上的用户。

票数 9
EN

Stack Overflow用户

发布于 2014-01-15 10:16:18

无论quux00回答了什么,都是正确的。我只是想补充几点。由于ssh操作中的命令ssh将由oozie用户执行,因此需要将oozie设置为bash用户。

为此,需要更改集群所有节点上的/etc/passwd文件。在/etc/passwd文件中查找以下值(类似于它)。

代码语言:javascript
复制
oozie:x:488:487:Oozie User:/var/lib/oozie:/bin/false 

并将其改为

代码语言:javascript
复制
oozie:x:488:487:Oozie User:/var/lib/oozie:/bin/bash

这实际上会使oozie用户成为bash用户。然后继续进行oozie用户与任何主机上您想要的其他用户之间的无密码身份验证。

然后再试着重新运行oozie工作。如果有用就告诉我。希望能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2014-02-20 15:06:42

这是一个非常棘手的问题,我只能破解它。我对所给的答案不满意,所以在这里我的版本。为我跟踪失败(我可以在日志中看到)

代码语言:javascript
复制
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,它就能工作。

代码语言:javascript
复制
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键有问题,所以我试着跟随它,它起作用了。

代码语言:javascript
复制
$ ssh-keygen -t dsa
$ cat ~/.ssh/id_dsa.pub > ~/.ssh/authorized_keys2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19272430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档