项目背景
公司部门成立初期,现在业务是由Shell脚本编写然后定时进行运行。由于现在公司一般都是搭建的CDH,内置有Oozie。且Oozie操作简单,功能强大,并且有很好的图形化界面所以还是想要搞一下。在搞的过程中出现了一堆问题,就是spark2与Oozie的整合现在不是很成熟,网上资料也很少,基本是淌着过去的。。。
运行环境
CDH:CDH-5.13.2-1.cdh5.13.2.
Java:1.8
scala:2.11.8
spark:2.2.0
整合步骤
由于公司spark与Oozie已经安装完了,我就不再介绍CDH的安装步骤,具体可以参考我之前的文章,但是那个版本有点旧。
1.首先进入以下目录,默认的有spark的目录,但是没有spark2的目录,这时oozie在运行时就会调用spark目录下面的jar包,这是我们要创建spark2的目录。
2.运行以下命令
- hadoop fs -mkdir /user/oozie/share/lib/lib_20180403101432/spark
- hadoop fs -put /opt/cloudera/parcels/SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904/lib/spark2/jars /user/oozie/share/lib/lib_20180403101432/spark2
- hadoop fs -cp /user/oozie/share/lib/lib_20180403101432/spark/oozie-sharelib-spark-4.1.0-cdh5.7.0.jar /user/oozie/share/lib/lib_20180403101432/spark2
- hadoop fs -cp /user/oozie/share/lib/lib_20180403101432/spark/oozie-sharelib-spark.jar /user/oozie/share/lib/lib_20180403101432/spark2
目录结构如下
2 Oozie配置界面实验步骤
1,在hue4的界面上 首先点击
保存创建好的文档
然后进入hue创建workflow的界面,注意这里选择你刚才创建文档的名称。然后点击Add然后点击齿轮进行配置 如下
最后保存,提交。
配置文件提交
目录结构如下
workfow.xml 内容如下
<?xml version="1.0" encoding="UTF-8"?>
<workflow-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="uri:oozie:workflow:0.4" xsi:schemaLocation="uri:oozie:workflow:0.4 uri:oozie:workflow:0.4"
name="oozie_demo">
<start to="User_time" />
<action name="User_time">
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>