Azkaban 深度探索:Flow 2.0、报警机制与脚本优化

        在大数据时代,数据处理和任务调度变得越来越复杂。为了高效地管理和执行各种任务,我们需要强大的工具来进行任务编排和调度。Azkaban 就是这样一个强大的任务调度和编排工具,它可以帮助我们轻松地管理和执行各种复杂的任务。本文将深入探讨 Azkaban 的 Flow 2.0 用法、报警机制以及脚本优化问题,并通过实际案例和代码演示来帮助读者更好地理解和应用 Azkaban。

一、Azkaban 简介

(一)什么是 Azkaban

Azkaban 是一个开源的工作流调度系统,用于在分布式环境中管理和执行复杂的任务流。它提供了一个可视化的界面,方便用户创建、调度和监控任务流。Azkaban 支持多种任务类型,包括 shell 脚本、Java 程序、Hive 脚本、Spark 任务等。

(二)Azkaban 的特点

  1. 简单易用:Azkaban 提供了一个直观的可视化界面,方便用户创建、调度和监控任务流。用户可以通过拖拽的方式创建任务流,无需编写复杂的代码。

  2. 强大的任务调度功能:Azkaban 支持多种任务调度方式,包括定时调度、依赖调度等。用户可以根据自己的需求设置任务的执行时间和依赖关系,确保任务按照正确的顺序执行。

  3. 高可靠性:Azkaban 采用了分布式架构,具有高可靠性和容错性。即使某个节点出现故障,任务也能够继续执行,不会影响整个系统的运行。

  4. 易于扩展:Azkaban 提供了丰富的插件机制,用户可以根据自己的需求扩展系统的功能。例如,用户可以开发自己的任务类型插件,实现对特定任务的支持。

二、Flow 2.0 的用法

(一)小试牛刀

创建文件

需要创建两个文件,分别是JobA.flowJobA.project

在JobA.project文件中编写一句话。

azkaban-flow-version: 2.0

在JobA.flow中,编写任务,需要注意YAML语句。

nodes:
   - name: jobA
     type: command
     config:
        command: echo "this is a simple test"

YAML 语句注意事项

YAML 是一种简洁的数据序列化格式,书写格式要求严格,层级关系纯靠缩进进行表示。

在编写任务时,需要注意缩进的正确性,以确保任务的结构清晰。

打包文件

JobA.flowJobA.project两个文件打包成一个 zip 文件,以便上传到 Azkaban 进行任务执行。

(二)YAML 格式的数据

YAML 与 JSON、XML 的比较

JSON 和 XML 是常见的数据格式,都是用来存储和传输数据的。而 YAML 则是近年来越来越流行的一种数据格式。

YAML 与 JSON 和 XML 一样,都可以用于传递信息,但它具有更加简洁和易读的语法。
JSON  存储数据,比如 datax中大量使用了json

        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "root",
            "password": "123456",
            "column": [
              "id",
              "age"
            ],
            "splitPk": "id",
            "connection": [
              {
                "table": [
                  "user"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://192.168.52.12:3306/sqoop"
                ]
              }
            ]
          }
        }

编写好了一个json ,里面含有大量的信息,肯定是有人用了。用的人肯定解析了这个文件。
JSON 传输数据:   html --> Java(SSM SSH SpringBoot)
xml 也可以做到。但是慢慢的淘汰了。
这三类文件格式都可以充当配置文件(存储数据)
JSON:  core.json
XML : hdfs-site.xml
YAML : 即将开始 

例如,在 Spring Boot 中,支持application.propertiesapplication.yaml两种配置文件,YAML 格式的配置文件更加易于阅读和维护。

YAML 语句注意事项:

1. 大小写敏感
2. 使用缩进表示层级关系 ;
3. 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级;
4. 使用#表示注释 ;
5. 字符串默认不用加单双引号,但单引号和双引号都可以使用,双引号表示不需要对特殊字符进行转义;
6. YAML 中提供了多种常量结构,包括:整数,浮点数,字符串,NULL,日期,布尔,时间。
7、缩进不允许使用tab,只允许空格

YAML 的语法格式

YAML 的语法格式非常严格,层级关系纯靠缩进进行表示。

表示对象

# value 与 : 符号之间必须要有一个空格

key: value

map的写法

# 写法一 同一缩进的所有键值对属于一个map

key:

key1: value1

key2: value2

# 写法二

{key1: value1, key2: value2}

数组的表示方式

# 写法一 使用一个短横线加一个空格代表一个数组项

- a

- b

- c

# 写法二

[a,b,c]

<
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天冬忘忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值