大数据Azkaban Work Flow实战

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据Azkaban Work Flow实战

1 HelloWorld 案例

1)在 windows 环境,新建 azkaban.project 文件,编辑内容如下azkaban-flow-version: 2.0

注意:该文件作用,是采用新的 Flow-API 方式解析 flow 文件。


2.0 azkaban支持 properties配置文件,也支持yml配置文件!

3.0 azkaban默认支持yml配置文件!

1.1 yarm语法:

yml:  简洁,适合表示层级关系复杂的数据!
  • yml主要使用缩进表示层级关系,一旦下一行出现了缩进,表示下一行是上一行的子属性!
  • 缩进时,如果缩进的距离一致,层级一致!
  • 大量使用空格,缩进时不能使用tab,K-V之间必须使用空格!

K-V类型表示方法:

k:(空格)v

对象类型数据,map(k-v)

jack:
  name: jack
  age: 20

单行:

jack: {name: jack,age: 20}

数组类型数据,List,Set

fruits:
  - apple
  - banana

单行:

fruits: [apple,banana]

2)新建 basic.flow 文件,内容如下

nodes:
- name: jobA
  type: command
  config:
    command: echo "Hello World"

(1)Name:job 名称

(2)Type:job 类型。command 表示你要执行作业的方式为命令

(3)Config:job 配置

3)将 azkaban.project、basic.flow 文件压缩到一个 zip 文件,文件名称必须是英文。

4)在 WebServer 新建项目:http://hadoop102:8081/index

5)给项目名称命名和添加项目描述

6)first.zip 文件上传

7)选择上传的文件

8)执行任务流

9)在日志中,查看运行结果

2 作业依赖案例

需求:JobA 和 JobB 执行完了,才能执行 JobC

具体步骤:

2.1 修改 basic.flow 为如下内容

nodes:
- name: jobC
  type: command
# jobC 依赖 JobA 和 JobB
  dependsOn:
    - jobA
    - jobB
  config:
    command: echo "I’m JobC"
- name: jobA
  type: command
  config:
   command: echo "I’m JobA"
- name: jobB
  type: command
  config:
    command: echo "I’m JobB"

(1)dependsOn:作业依赖,后面案例中演示

2.2 将修改后的 basic.flow 和 azkaban.project 压缩成 second.zip 文件

2.3 重复 HelloWorld 后续步骤。

3 自动失败重试案例

需求:如果执行任务失败,需要重试 3 次,重试的时间间隔 10000ms

具体步骤:

3.1 编译配置流

nodes:
  - name: JobA
  type: command
  config:
    command: sh /not_exists.sh
    retries: 3
    retry.backoff: 10000

这个sh文件是不存在的

参数说明:

retries:重试次数

retry.backoff:重试的时间间隔

3.2 将修改后的 basic.flow 和 azkaban.project 压缩成 four.zip 文件

3.3 重复HelloWorld 后续步骤。

3.4 执行并观察到一次失败+三次重试

3.5 也可以点击上图中的 Log,在任务日志中看到,总共执行了 4 次

3.6 也可以在 Flow 全局配置中添加任务失败重试配置,此时重试配置会应用到所有 Job

案例如下:

config:
  retries: 3
  retry.backoff: 10000
nodes:
  - name: JobA
  type: command
  config:
    command: sh /not_exists.sh

4 手动失败重试案例

需求:JobA=》JobB(依赖于 A)=》JobC=》JobD=》JobE=》JobF。生产环境,任何 Job 都有可能挂掉,可以根据需求执行想要执行的 Job。

具体步骤:

4.1 编译配置流

nodes:
  - name: JobA
  type: command
  config:
    command: echo "This is JobA."
  - name: JobB
  type: command
  dependsOn:
    - JobA
  config:
    command: echo "This is JobB."
- name: JobC
  type: command
  dependsOn:
    - JobB
  config:
    command: echo "This is JobC."
- name: JobD
type: command
  dependsOn:
    - JobC
  config:
    command: echo "This is JobD."
  - name: JobE
  type: command
  dependsOn:
    - JobD
  config:
    command: echo "This is JobE."
- name: JobF
  type: command
  dependsOn:
    - JobE
  config:
    command: echo "This is JobF."

4.2 将修改后的 basic.flow 和 azkaban.project 压缩成 five.zip 文件

4.3 重复HelloWorld 后续步骤。

Enable 和 Disable 下面都分别有如下参数:

Parents:该作业的上一个任务

Ancestors:该作业前的所有任务

Children:该作业后的一个任务

Descendents:该作业后的所有任务

Enable All:所有的任务

4.4 可以根据需求选择性执行对应的任务。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
2月前
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
4月前
|
存储 SQL 分布式计算
别让你的数据“裸奔”!大数据时代的数据隐私保护实战指南
别让你的数据“裸奔”!大数据时代的数据隐私保护实战指南
208 19
|
3月前
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
175 0
|
4月前
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
|
10月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
655 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
7月前
|
SQL 缓存 数据处理
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)
Apache Doris 提出“数据无界”和“湖仓无界”理念,提供高效的数据管理方案。本文聚焦三个典型应用场景:湖仓分析加速、多源联邦分析、湖仓数据处理,深入介绍 Apache Doris 的最佳实践,帮助企业快速响应业务需求,提升数据处理和分析效率
345 3
数据无界、湖仓无界,Apache Doris 湖仓一体典型场景实战指南(下篇)
|
7月前
|
存储 分布式计算 大数据
基于阿里云大数据平台的实时数据湖构建与数据分析实战
在大数据时代,数据湖作为集中存储和处理海量数据的架构,成为企业数据管理的核心。阿里云提供包括MaxCompute、DataWorks、E-MapReduce等在内的完整大数据平台,支持从数据采集、存储、处理到分析的全流程。本文通过电商平台案例,展示如何基于阿里云构建实时数据湖,实现数据价值挖掘。平台优势包括全托管服务、高扩展性、丰富的生态集成和强大的数据分析工具。
|
10月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集