Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 运行Oozie SSH+Java操作_Hadoop_Oozie - Fatal编程技术网

Hadoop 运行Oozie SSH+Java操作

Hadoop 运行Oozie SSH+Java操作,hadoop,oozie,Hadoop,Oozie,如何运行SSH+JAVA操作 我需要对我的远程计算机运行SSH操作。在我的远程机器中,我有一个jar文件+必须执行的属性文件。 如何为此编写工作流 在这种情况下,jar文件是否将从oozie lib文件夹复制到远程计算机。如果是,将在哪个位置复制/home/user/oozie-oozi/ 我写了一个如下的工作流程 <action name="ssh-FileValidation"> <ssh xmlns="uri:oozie:ssh-action:0.1">

如何运行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安装的集群中

将jar放在HDFS中workflow.xml附近的lib目录中,并将属性文件放在workflow.xml附近:

然后,假设com.example.superozieappaction类位于super-oozie-app.jar中,并且它有您想要运行的main方法,您可以如下定义Java操作:

<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为您解决了文件分发问题。SuperozieAppAction将启动,super-oozie-app.properties将位于其当前目录中


阅读有关java操作和文件分发的更多信息。

如何使用SSH+java?在这种情况下不需要使用SSH。Oozie和HDFS为您处理文件分发。我需要在特定机器上运行Java操作,那么您如何定义它?实际上,Oozie将Java操作作为单个映射器MR作业运行,因此它不能保证映射器将在特定机器上启动。为什么需要它?我正在尝试将一些文件从指定的计算机复制到hadoop群集?
<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>