背景
在今天中午,本人快乐的干饭的时候,领导打电话过来询问oozie
是个什么样的东西,能不能有个用例?在本人的理解里面,oozie
主要是个调度工具。所以本篇为CDH
集群的oozie
的快速入门教程
环境准备
CDH
集群一套CDH
集群中集成了oozie
和hue
因为oozie
整合进hue
中界面化了,不像那种命令行提交的方式,要写很多繁杂的xml
文件,所以本文就开始揭露,如何快速入门oozie
新建一个调度任务
本文使用一个pyspark
作为调度用例:
pyspark
的代码如下,文件名为:pyspark_test.py
,已经上传至hdfs
的/oozie/
路径下了。
from pyspark.sql import SparkSession
spark = SparkSession.Builder().getOrCreate()
spark.sql("select 1 as temp").show()
spark.stop()
打开hue
的界面:
出现下图所示的界面:
红框选中的地方是oozie
支持的任务类型,然后我们选择一个spark
的action
就是从左往右数第四个五角星的那个。用鼠标安按住拖入那个标记了Drop your action here
的区域。
出现下图,这里面第一个Files
是提供运行时所需要的文件,Jar/py name
表示指定spark
的任务jar包或者pyspark
所需要的python
脚本:
在上面我提到了,有一个pyspark_test.py
文件存放在hdfs
的/oozie/
路径下了,所以在Files
这一栏中,路径名称是/oozie/pyspark_test.py
Jar/py name
里面填的是这个python
脚本的名字pyspark_test.py
。
接着会出现如下界面,相关的注释也都在这里了,看不清的小伙伴可以右键点击图片,然后选择在新的标签页打开
填写完毕之后点击保存按钮,如下所示:
保存完毕之后,在保存的按钮的左侧会出现一个三角符号,代表可以启动任务了。
启动的时候会出现下图所示的样子,这句话代表,在提交作业前是否需要试运行一下,至于这个试运行会有什么效果我不知道。所以这边忽略了这个选项,直接点击Submit
任务如下,运行成功:
因为我这个集群是spark on yarn
,所以我们可以进入到spark
的管理界面上看到这个任务:
可以看到我们的任务MySpark
确实已经提交成功了。同时出现了一个oozie
的一个任务。据观察:当这个任务在oozie
上启动的时候:
yarn
上会出现一个oozie
的调度任务,然后这个任务启动的过程中会将启动spark
的任务。
至此,一个简单的oozie
的调度任务就做完了。下面我会聊聊一些功能的入口在哪里:
Oozie的一些入口位置
设置周期调度
调度编辑器:
保存完毕之后,右上角有一个三角图标,记得点击一下,将任务流进入调度队列里面
这里我设置了任务每一分钟运行一次,但是这个选项的最小粒度是天,通过点击Options
通过cron
语法将将调度时间设置为每分钟执行一次,调度队列如下所示,出现以下 的图片才能算是真正的调度成功:
进入oozie的控制台
删除任务
左侧方框里面的东西,直接用鼠标右键点击,选择删除就好了。
查看任务的日志
在控制台的jobs
当中选择一个任务,如下所示:
或者从workflow
进去
也能查看到日志:
查看oozie的Xml配置文件
如下图所示:
这样就可以查看任务的底层配置的写法,更加清楚的了解任务的详细配置信息了。
关闭已经执行了的调度
如果有正在执行的调度的话,就会在这个Running
下面,就会有一个栏目,我现在已经将这个任务取消掉了取消的方法就是先选中这个任务,然后再点击界面的右上角有一个kill
的选项,点击一下就好了
下图是我取消了调度任务样子:
总结:
这里主要是记录了一下Oozie
的快速入门,比较基础比较简单,各位大佬有什么更好的经验的话,请在评论区内分享一下,谢谢各位大佬了。