如何运行 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>
对于Above解决方案,我需要将jar文件和Properties文件复制到我的远程机器上。
还有其他方法,我不需要将jar文件复制到每台机器。在运行oozie时,oozie本身会将所需的jar文件复制到jar将被执行的位置
仅供参考,但远程机器只安装在hadoop安装集群中。
答案 0 :(得分:0)
将您的jar放入HDFS中lib
附近的workflow.xml
目录,以及workflow.xml
附近的属性文件中:
/user/syed/super-oozie-app/
workflow.xml
super-oozie-app.properties
lib/
super-oozie-app.jar
然后您可以按如下方式定义Java操作(假设com.example.SuperOozieAppAction类位于super-oozie-app.jar
并且它具有您要运行的main
方法):
<action name="super-oozie-app-action">
<java>
...
<main-class>com.example.SuperOozieAppAction</main-class>
<file>super-oozie-app.properties#super-oozie-app.properties</file>
</java>
...
</action>
这样Oozie就能解决您的文件分发问题。 SuperOozieAppAction
将被启动,super-oozie-app.properties
将位于其当前目录中。