0
スパークジョブとハイブSQLスクリプトを順番に実行したい。シェルスクリプトを使ってやっています。これを達成するために推奨される他の方法/ベストプラクティスはありますか?私はウェブ上で検索しましたが、このシナリオに合っていますか?スパークジョブとハイブスクリプトの自動化
スパークジョブとハイブSQLスクリプトを順番に実行したい。シェルスクリプトを使ってやっています。これを達成するために推奨される他の方法/ベストプラクティスはありますか?私はウェブ上で検索しましたが、このシナリオに合っていますか?スパークジョブとハイブスクリプトの自動化
はい、最初にspark actionを実行してからHiveQL actionを実行するために、Oozieワークフローを定義できます。たとえば、このようなワークフロー定義を持つことができます。
<workflow-app name="your_sequence" xmlns="uri:oozie:workflow:0.1">
...
<start to="firstSparkJob"/>
<action name="firstSparkJob">
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>[JOB-TRACKER]</job-tracker>
<name-node>[NAME-NODE]</name-node>
<prepare>
<delete path="[PATH]"/>
...
<mkdir path="[PATH]"/>
...
</prepare>
<job-xml>[SPARK SETTINGS FILE]</job-xml>
<configuration>
<property>
<name>[PROPERTY-NAME]</name>
<value>[PROPERTY-VALUE]</value>
</property>
...
</configuration>
<master>[SPARK MASTER URL]</master>
<mode>[SPARK MODE]</mode>
<name>[SPARK JOB NAME]</name>
<class>[SPARK MAIN CLASS]</class>
<jar>[SPARK DEPENDENCIES JAR/PYTHON FILE]</jar>
<spark-opts>[SPARK-OPTIONS]</spark-opts>
<arg>[ARG-VALUE]</arg>
...
<arg>[ARG-VALUE]</arg>
...
</spark>
<ok to="HiveAction"/>
<error to="ErrorSpark"/>
</action>
<action name="HiveAction">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>[JOB-TRACKER]</job-tracker>
<name-node>[NAME-NODE]</name-node>
<prepare>
<delete path="[PATH]"/>
...
<mkdir path="[PATH]"/>
...
</prepare>
<job-xml>[HIVE SETTINGS FILE]</job-xml>
<configuration>
<property>
<name>[PROPERTY-NAME]</name>
<value>[PROPERTY-VALUE]</value>
</property>
...
</configuration>
<script>[HIVE-SCRIPT]</script>
<param>[PARAM-VALUE]</param>
...
<param>[PARAM-VALUE]</param>
<file>[FILE-PATH]</file>
...
<archive>[FILE-PATH]</archive>
...
</hive>
<ok to="end"/>
<error to="ErrorHive"/>
</action>
...
<end name="end"/>
</workflow-app>
https://oozie.apache.org/docs/4.2.0/DG_SparkActionExtension.html –