大数据Oozie任务调度

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据Oozie任务调度

1 Oozie 概述

Oozie 是一个用来管理 Hadoop 生态圈 job 的工作流调度系统。由 Cloudera公司贡献给 Apache。Oozie 是运行于 Java servlet 容器上的一个 java web 应用。Oozie 的目的是按照 DAG(有向无环图)调度一系列的 Map/Reduce 或者 Hive等任务。Oozie 工作流由 hPDL(Hadoop Process Definition Language)定义(这是一种 XML 流程定义语言)。适用场景包括:

需要按顺序进行一系列任务;

需要并行处理的任务;

需要定时、周期触发的任务;

可视化作业流运行过程;

运行结果或异常的通报。

fe966be7fbf94cd6b1b49b72a9dbb9dc.png


2 Oozie 的架构

Oozie Client:提供命令行、java api、rest 等方式,对 Oozie 的工作流流程的提交、启动、运行等操作;

Oozie WebApp:即 Oozie Server,本质是一个 java 应用。可以使用内置的web 容器,也可以使用外置的 web 容器;Hadoop Cluster:底层执行 Oozie 编排流程的各个 hadoop 生态圈组件;


3 Oozie 基本原理

Oozie 对工作流的编排,是基于 workflow.xml 文件来完成的。用户预先将工作流执行规则定制于 workflow.xml 文件中,并在 job.properties 配置相关的参数,然后由 Oozie Server 向 MR 提交 job 来启动工作流。


3.1 流程节点

工作流由两种类型的节点组成,分别是:Control Flow Nodes:控制工作流执行路径,包括 start,end,kill,decision,fork,join。Action Nodes:决定每个操作执行的任务类型,包括 MapReduce、java、hive、shell 等。

e40dd8072ddd4e0fa389867a6bb05b0a.png


4 Oozie 工作流类型

4.1 WorkFlow

规则相对简单,不涉及定时、批处理的工作流。顺序执行流程节点。Workflow 有个大缺点:没有定时和条件触发功能。

97e8d92ebada4eccbf03142d739ba1f8.png


4.2 Coordinator

Coordinator 将多个工作流 Job 组织起来,称为 Coordinator Job,并指定触发时间和频率,还可以配置数据集、并发数等,类似于在工作流外部增加了一个协调器来管理这些工作流的工作流 Job 的运行。

4800ac718af841ac89d493db49625c18.png

4.3 Bundle

针对 coordinator 的批处理工作流。Bundle 将多个 Coordinator 管理起来,这样我们只需要一个 Bundle 提交即可。


bbf8cf11592b418ba74779edd679b671.png

5 Oozie 和 Hue 整合

个人私心重新写了这里,因为Oozie原生使用太难用了而且坑也不少,集成后图形化界面就很好用



[liboozie]
# The URL where the Oozie service runs on. This is required in order for
# users to submit jobs. Empty value disables the config check.
oozie_url=http://node-1:11000/oozie
# Requires FQDN in oozie_url if enabled
## security_enabled=false
# Location on HDFS where the workflows/coordinator are deployed when submitted.
remote_deployement_dir=/user/root/oozie_works
[oozie]
# Location on local FS where the examples are stored.
# local_data_dir=/export/servers/oozie-4.1.0-cdh5.14.0/examples/apps
# Location on local FS where the data for the examples is stored.
# sample_data_dir=/export/servers/oozie-4.1.0-cdh5.14.0/examples/input-data
# Location on HDFS where the oozie examples and workflows are stored.
# Parameters are $TIME and $USER, e.g. /user/$USER/hue/workspaces/workflow-
$TIME
# remote_data_dir=/user/root/oozie_works/examples/apps
# Maximum of Oozie workflows or coodinators to retrieve in one API call.
oozie_jobs_count=100
# Use Cron format for defining the frequency of a Coordinator instead of the old
frequency number/unit.
enable_cron_scheduling=true
# Flag to enable the saved Editor queries to be dragged and dropped into a workflow.
enable_document_action=true
# Flag to enable Oozie backend filtering instead of doing it at the page level in
Javascript. Requires Oozie 4.3+.
enable_oozie_backend_filtering=true
# Flag to enable the Impala action.
enable_impala_action=true
[filebrowser]
# Location on local filesystem where the uploaded archives are temporary stored.
archive_upload_tempdir=/tmp
# Show Download Button for HDFS file browser.
show_download_button=true
# Show Upload Button for HDFS file browser.
show_upload_button=true
# Flag to enable the extraction of a uploaded archive in HDFS.
enable_extract_uploaded_archive=true

5.2 启动 hue 、oozie

启动 hue 进程

cd /export/servers/hue-3.9.0-cdh5.14.0

build/env/bin/supervisor

启动 oozie 进程

cd /export/servers/oozie-4.1.0-cdh5.14.0

bin/oozied.sh start

页面访问 hue

http://node-1:8888/


5.3 Hue 集成 Oozie

5.3.1 使用 hue 配置 oozie 调度

c031f40f97a845cbb6575bd8ce4163ea.png


5.3.2 利用 hue 调度 shell 脚本

在 HDFS 上创建一个 shell 脚本程序文件。


4925434022fd4f318a7056c451f8906f.png

2fdc98bb733347569837a2a51ab769ed.png

32cd7597a5a947c0a7cb667b36707a7f.png打开工作流调度页面。


a9275d6288404ab186b36e2692197078.png


e2739911494840839bdf237b5165139b.png92038a681a0540c29d838c54e86e2612.png


2fac880803da458cbbcff27165639b53.png

47e238641732452084a3e8275a6b3f08.png

b07e0af1a12e4d5382b422a4ad595919.png5.3.3 利用 hue 调度 hive 脚本

在 HDFS 上创建一个 hive sql 脚本程序文件。

29e4f5177b3145e0acac584230ea93d2.png

打开 workflow 页面,拖拽 hive2 图标到指定位置。

8f2d957da4e44ce5b32a154e6803f9db.png


c50c9261d6a04bd7b39d8a6c34c586b7.png

0fc78a4ed0614a1bb5a609253752c857.png


da1c3dcbfe8248738a8823de4d4f86d3.png

37bf563e83424f71a22c4313d187b77f.png5.3.4 利用 hue 调度 MapReduce 程序

利用 hue 提交 MapReduce 程序

ffb8a00002754c71be271c71ebe77119.png

f38b275b2e1b4a788bd856a0965c188e.png

5dd55a3a43094f639fe17b2683e47021.png



5.3.5 利用 Hue 配置定时调度任务

在 hue 中,也可以针对 workflow 配置定时调度任务,具体操作如下:


7bd04eb8d50642509f4a385d99f2bced.pnge6d30efab41c42d28d19bddb99a9e462.png3151da7267f8439f84b5294087911975.png


06a0658a9a48466c956f21846849af3d.png


一定要注意时区的问题,否则调度就出错了。保存之后就可以提交定时任务。

5c3da6ae919e4ce1a7c9dd47242b1e0b.png

b14944ee72014fd1b58679b2d2d3f5a1.png

点击进去,可以看到定时任务的详细信息。

a8dc8631ebfd4b5e844466d9bd9c5151.png3745094d01fc43b1ac1215a63a8f0aca.png



6 Oozie 任务查看 、 杀死

查看所有普通任务

oozie jobs

查看定时任务

oozie jobs -jobtype coordinator

杀死某个任务 oozie 可以通过 jobid 来杀死某个定时任务

oozie job -kill [id]

oozie job -kill 0000085-180628150519513-oozie-root-C


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
5月前
|
存储 分布式计算 监控
使用Airflow管理大数据工作流:自动化任务调度与依赖
【4月更文挑战第8天】Apache Airflow是一款开源的工作流管理工具,用于高效组织和调度大数据任务。它基于DAG(有向无环图)定义任务依赖,通过Operators(如BashOperator、PythonOperator)执行不同工作,并通过Scheduler和Executor协调任务执行。Web UI提供监控界面,Metadata DB存储元数据。创建DAG涉及定义DAG属性、Task及依赖关系,然后部署到Airflow环境。进阶功能包括Variables和Connections管理、XCom跨Task通信、自定义Operator及Plugin、高级调度与告警设置。
427 0
|
存储 Kubernetes JavaScript
大数据任务调度工具 Apache DolphinScheduler
大数据任务调度工具 Apache DolphinScheduler
665 1
|
SQL 分布式计算 Cloud Native
带你读《企业级云原生白皮书项目实战》——5.2.6 数据开发及任务调度(上)
带你读《企业级云原生白皮书项目实战》——5.2.6 数据开发及任务调度(上)
189 0
|
SQL 分布式计算 DataWorks
带你读《企业级云原生白皮书项目实战》——5.2.6 数据开发及任务调度(下)
带你读《企业级云原生白皮书项目实战》——5.2.6 数据开发及任务调度(下)
184 0
|
29天前
|
存储 大数据 数据挖掘
【数据新纪元】Apache Doris:重塑实时分析性能,解锁大数据处理新速度,引爆数据价值潜能!
【9月更文挑战第5天】Apache Doris以其卓越的性能、灵活的架构和高效的数据处理能力,正在重塑实时分析的性能极限,解锁大数据处理的新速度,引爆数据价值的无限潜能。在未来的发展中,我们有理由相信Apache Doris将继续引领数据处理的潮流,为企业提供更快速、更准确、更智能的数据洞察和决策支持。让我们携手并进,共同探索数据新纪元的无限可能!
81 11
|
2月前
|
存储 分布式计算 大数据
MaxCompute 数据分区与生命周期管理
【8月更文第31天】随着大数据分析需求的增长,如何高效地管理和组织数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个专为海量数据设计的计算服务,它提供了丰富的功能来帮助用户管理和优化数据。本文将重点讨论 MaxCompute 中的数据分区策略和生命周期管理方法,并通过具体的代码示例来展示如何实施这些策略。
82 1
|
2月前
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
|
2月前
|
存储 监控 安全
大数据架构设计原则:构建高效、可扩展与安全的数据生态系统
【8月更文挑战第23天】大数据架构设计是一个复杂而系统的工程,需要综合考虑业务需求、技术选型、安全合规等多个方面。遵循上述设计原则,可以帮助企业构建出既高效又安全的大数据生态系统,为业务创新和决策支持提供强有力的支撑。随着技术的不断发展和业务需求的不断变化,持续优化和调整大数据架构也将成为一项持续的工作。
|
2月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之ODPS数据怎么Merge到MySQL数据库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。

热门文章

最新文章

下一篇
无影云桌面