現在、MapReduceV1および/またはYARN用に提供されているREST APIを介して外部にアプリケーションを送信する方法はありますか?カスタムサービスを追加せずにこれを行う方法を見つけたいと思っています。
これまでのところ、 YARNを使用してResourceManagerGET
からアプリケーションステータスを取得する方法を理解しただけです。
たぶん私はこれを間違って見ています、そしてこれを外部で行うより良い方法がありますか?
現在、MapReduceV1および/またはYARN用に提供されているREST APIを介して外部にアプリケーションを送信する方法はありますか?カスタムサービスを追加せずにこれを行う方法を見つけたいと思っています。
これまでのところ、 YARNを使用してResourceManagerGET
からアプリケーションステータスを取得する方法を理解しただけです。
たぶん私はこれを間違って見ています、そしてこれを外部で行うより良い方法がありますか?
そのため、調査を行った結果、Oozieワークフロースケジューラが最適な方法であると判断しました。
これは、Hadoopシステム内で実行されているRESTエンドポイントに送信してMapReduceジョブを開始できるサンプルワークフローです。 <action>
■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から取得したサンプル