如何运行ssh+java操作。
我需要对我的远程计算机运行ssh操作。在我的远程机器中,我有一个jar文件+必须执行的属性文件。如何为此编写工作流?
在这种情况下,jar文件是否会从oozie lib文件夹复制到远程机器。如果是这样,它将被复制到哪个地方/home/user/oozie oozi/
我写了一个工作流程如下
<action name="ssh-FileValidation">
<ssh xmlns="uri:oozie:ssh-action:0.1">
<host>user@myremotenode-ip</host>
<command>/home/user/testscript.sh</command>
</ssh>
<ok to="mr-job"/>
<error to="fail"/>
</action>
对于上面的解决方案,我需要将jar文件和属性文件复制到我的远程机器上。
有没有其他方法,我不需要复制jar文件到每台机器。与运行oozie时一样,oozie本身会将所需的jar文件复制到jar执行的位置
仅供参考,但远程计算机只安装在hadoop安装的集群中。
1条答案
按热度按时间cs7cruho1#
把你的jar放进去
lib
目录靠近您的workflow.xml
在hdfs中,属性文件workflow.xml
:然后您可以如下定义java操作(假设com.example.superoozieappaction类位于
super-oozie-app.jar
而且它有main
要运行的方法):这样oozie就为您解决了文件分发的问题。
SuperOozieAppAction
将启动并super-oozie-app.properties
将位于其当前目录中。阅读更多关于java操作和文件分发的信息。