spark作业和hive脚本自动化

Posted

技术标签:

【中文标题】spark作业和hive脚本自动化【英文标题】:spark job and hive script automation 【发布时间】:2016-08-15 18:19:39 【问题描述】:

我想一个接一个地依次运行 spark 作业和 hive sql 脚本。我正在使用 shell 脚本进行操作。有没有其他推荐的方法/最佳实践来实现这一目标?我在网上搜索,oozie 适合这种情况吗?

【问题讨论】:

oozie.apache.org/docs/4.2.0/DG_SparkActionExtension.html 【参考方案1】:

是的,您可以定义一个 Oozie 工作流,以便首先执行spark action,然后执行HiveQL action。例如,您可以有一个像这样的工作流定义。

<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>

【讨论】:

以上是关于spark作业和hive脚本自动化的主要内容,如果未能解决你的问题,请参考以下文章

如何使用scala开发spark作业,并访问hive

Spark&Hive:如何使用scala开发spark作业,并访问hive。

Hadoop双节点&Hive搭建自动化脚本

Hadoop双节点&Hive搭建自动化脚本

线上 hive on spark 作业执行超时问题排查案例分享

线上 hive on spark 作业执行超时问题排查案例分享