3

目前有没有办法通过为 MapReduceV1 和/或 YARN 提供的 REST API 向外部提交应用程序?我希望在不添加自定义服务的情况下找到一种方法。

到目前为止,我只弄清楚了如何使用 YARNGETResourceManager获取应用程序状态。

也许我看错了,有更好的方法在外部做到这一点?

4

1 回答 1

2

所以在做了一些研究之后,我决定Oozie Workflow Scheduler是要走的路。

这是一个示例工作流,可以提交到在 Hadoop 系统内运行的 REST 端点以启动 MapReduce 作业。 <action>s 不限于 MapReduce。

<workflow-app xmlns='uri:oozie:workflow:0.1' name='map-reduce-wf'>
    <start to='hadoop1' />
    <action name='hadoop1'>
        <map-reduce>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <configuration>
                <property>
                    <name>mapred.mapper.class</name>
                    <value>org.apache.oozie.example.SampleMapper</value>
                </property>
                <property>
                    <name>mapred.reducer.class</name>
                    <value>org.apache.oozie.example.SampleReducer</value>
                </property>
                <property>
                    <name>mapred.map.tasks</name>
                    <value>1</value>
                </property>
                <property>
                    <name>mapred.input.dir</name>
                    <value>input-data</value>
                </property>
                <property>
                    <name>mapred.output.dir</name>
                    <value>output-map-reduce</value>
                </property>
                <property>
                  <name>mapred.job.queue.name</name>
                  <value>unfunded</value>
                </property>
            </configuration>
        </map-reduce>
        <ok to="end" />
        <error to="fail" />
    </action>
    <kill name="fail">
        <message>Map/Reduce failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name='end' />
</workflow-app>

样本取自https://github.com/yahoo/oozie/wiki/Oozie-WF-use-cases

于 2013-01-11T19:28:41.550 回答