文章目录
前言:
Oozie是Hadoop平台上开源的工作流调度引擎,通过hue集成的oozie管理界面,可以清晰地发布/查看/管理相关调度任务,基于此可以完成整个BI中间表,结果表的存储与计算。
整体流程如下:
1.oozie资源调度
1.1 oozie概览
Oozie是Hadoop平台上的资源调度框架,与flume,sqoop,和hue并称大数据四大协作框架,支持多种任务(spark1/2,mapreduce,java,shell,python等)调度,管理和查看。
下面集群采用的是CDH 5.13集成的oozie 4.1.0,框架更多细节详见:http://oozie.apache.org/docs/4.1.0/index.html
1.2 oozie与spark2整合
下面主要如何通过hue界面工具,将spark2任务提交到oozie调度中心,完成任务的管理和查看,一些关键点如下:
• oozie添加spark2依赖库
• 打包与提交spark2 jar, 创建spark2工作流
• 管理与查看工作流相关状态
1.2.1 oozie添加spark2依赖库
由于CDH自带的oozie默认仅支持spark1,所以唤醒spark2任务有两种方式:
• 第一种是写好spark2 submit的shell脚本,通过oozie里的shell任务唤醒该脚本去提交spark2任务;
• 第二种是配置spark2相关依赖环境,直接通过oozie进行spark2 submit;
下面主要是第二种详解:
• 首先hdfs创建下oozie的spark2目录:
sudo -u hdfs hdfs dfs -mkdir /user/oozie/share/lib/lib_20180131202902/spark2
• 其次将 CDH parcels目录下的spark2依赖上传到上面的spark2目录:
sudo -u hdfs hdfs dfs -put /opt/cloudera/parcels/SPARK2/lib/spark2/jars/*.jar /user/oozie/share/lib/lib_20180131202902/spark2/
sudo -u hdfs hdfs dfs -put /opt/cloudera/parcels/CDH/lib/oozie/oozie-sharelib-yarn/lib/spark/oozie-sharelib-spark*.jar /user/oozie/share/lib/lib_20180131202902/spark2/
• 修改第一步创建的spark2目录相关权限: