2016-08-15 13 views
0

スパークジョブとハイブSQLスクリプトを順番に実行したい。シェルスクリプトを使ってやっています。これを達成するために推奨される他の方法/ベストプラクティスはありますか?私はウェブ上で検索しましたが、このシナリオに合っていますか?スパークジョブとハイブスクリプトの自動化

+0

https://oozie.apache.org/docs/4.2.0/DG_SparkActionExtension.html –

答えて

1

はい、最初に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>