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脚本自动化的主要内容,如果未能解决你的问题,请参考以下文章
Spark&Hive:如何使用scala开发spark作业,并访问hive。