官网:https://dolphinscheduler.apache.org/

  1.1 概述

  Apache DolphinScheduler是一个分布式、易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用

  1.2 核心架构

  DolphinScheduler的主要角色如下:

  MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交、任务监控,并同时监听其它MasterServer和WorkerServer的健康状态WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务ZooKeeper服务,系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错Alert服务,提供告警相关服务API接口层,主要负责处理前端UI层的请求UI,系统的前端页面,提供系统的各种可视化操作界面

  

  https://dolphinscheduler.apache.org/zh-cn/docs/2.0.3/部署指南_menu

  2.1 概述

  DolphinScheduler支持多种部署模式,包括单机模式(Standalone)、伪集群模式(Pseudo-Cluster)、集群模式(Cluster)等

  2.2 单机模式中文的telegram的下载的地方

  单机模式(standalone)模式下,所有服务均集中于一个StandaloneServer进程中,并且其中内置了注册中心Zookeeper和数据库H2。只需配置JDK环境,就可一键启动DolphinScheduler,快速体验其功能

  由于DolphinScheduler的单机模式使用的是内置的ZK和数据库,故在集群模式下所做的相关配置在单机模式下并不可见,所以需要重新配置,必要的配置为创建租户和创建用户

  2.3 伪集群模式

  伪集群模式(Pseudo-Cluster)是在单台机器部署 DolphinScheduler 各项服务,该模式下master、worker、api server、logger server等服务都只在同一台机器上。Zookeeper和数据库需单独安装并进行相应配置

  2.4 集群模式

  集群模式(Cluster)与伪集群模式的区别就是在多台机器部署 DolphinScheduler各项服务,并且可以配置多个Master及多个Worker

  3.1 集群规划与准备

  三台节点均需部署JDK(1.8+),并配置相关环境变量需部署数据库,支持MySQL(5.7+)或者PostgreSQL(8.2.15+)。如 MySQL 则需要 JDBC Driver 8.0.16需部署Zookeeper(3.4.6+)如果启用 HDFS telegram的中文下载网站怎么找 文件系统,则需要 Hadoop(2.6+)环境三台节点均需安装进程管理工具包psmisc

  3.2 下载与配置部署脚本

  修改解压目录下的conf/config目录下的install_config.conf文件,不需要修改的可以直接略过

  3.3 初始化数据库

  DolphinScheduler 元数据存储在关系型数据库中,故需创建相应的数据库和用户

  3.4 一键部署DolphinScheduler

  3.5 DolphinScheduler启停命令

  安装完后得去修改或启停

  入门文档可以参考:https://dolphinscheduler.apache.org/zh-cn/docs/2.0.3/guide/quick-start

  https://dolphinscheduler.apache.org/zh-cn/docs/2.0.3/功能介绍_menu/参数_menu

  DolphinScheduler支持对任务节点进行灵活的传参,任务节点可通过引用参数值

  1.1 内置参数

  基础内置参数

  变量名参数说明system.biz.date${system.biz.date}定时时间前一天,格式为 telegram的中文版的下载的地方 yyyyMMddsystem.biz.curdate${system.biz.curdate}定时时间,格式为 yyyyMMddsystem.datetime${system.datetime}定时时间,格式为 yyyyMMddHHmmss

  衍生内置参数

  可通过衍生内置参数,设置任意格式、任意时间的日期。

  自定义日期格式:可以对 $[yyyyMMddHHmmss] 任意分解组合,如 $[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd]。使用 add_months() 函数:该函数用于加减月份, 第一个入口参数为[yyyyMMdd],表示返回时间的格式 第二个入口参数为月份偏移量,表示加减多少个月

  参数说明$[add_months(yyyyMMdd,12*N)]后 N 年$[add_months(yyyyMMdd,-12*N)]前 N 年$[add_months(yyyyMMdd,N)]后 N 月$[add_months(yyyyMMdd,-N)]前 N 月$[yyyyMMdd+7*N]后 N 周$[yyyyMMdd-7*N]前 N 周$[yyyyMMdd+N]后 N 天$[yyyyMMdd-N]前 N 天$[HHmmss+N/24]后 N 小时$[HHmmss-N/24]前 N 小时$[HHmmss+N/24/60]后 N 分钟$[HHmmss-N/24/60]前 N 分钟

  

  相关说明

  dt:参数名IN:IN 表示局部参数仅能在当前节点使用,OUT 表示局部参数可以向下游传递(目前支持这个特性的任务类型有:Shell、SQL、Procedure;同时若节点之间没有依赖关系,则局部参数无法传递)DATE:数据类型,日期$[yyyy-MM-dd]:自定义格式的衍生内置参数

  全局参数在工作流定义,本地参数在节点定义,本地参数 > 全局参数 > 上游任务传递的参数

  1.2 参数传递

  本地参数 > 全局参数 > 上游任务传递的参数;多个上游节点均传递同名参数时,下游节点会优先使用值为非空的参数;如果存在多个值为非空的参数,则按照上游任务的完成时间排序,选择完成时间最早的上游任务对应的参数。

  有些任务需要引用一些额外的资源,例如MR、Spark等任务须引用jar包,Shell任务需要引用其他脚本等。DolphinScheduler提供了资源中心来对这些资源进行统一管理。

  如果需要用到资源上传功能,针对单机可以选择本地文件目录作为上传文件夹(此操作不需要部署 Hadoop)。当然也可以选择上传到 Hadoop or MinIO 集群上,此时则需要有Hadoop (2.6+) 或者 MinIO 等相关环境。本文在部署 DS 集群时指定了文件系统为 HDFS

  https://dolphinscheduler.apache.org/zh-cn/docs/2.0.3/guide/resource

  https://dolphinscheduler.apache.org/zh-cn/docs/2.0.3/功能介绍_menu/数据源中心_menu

  数据源中心支持MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER等数据源。此处仅对 HIVE 数据源进行介绍

  数据源:选择HIVE数据源名称:输入数据源的名称描述:输入数据源的描述,可置空IP/主机名:输入连接HIVE的IP端口:输入连接HIVE的端口,默认 10000用户名:设置连接HIVE的用户名,如果没有配置 HIVE 权限管理,则用户名可以任意,但 HIVE 表数据存储在 HDFS,为了保证对所有表的数据均有操作权限,此处选择 HDFS 超级用户 atguigu(注:HDFS 超级用户名与执行 HDFS 启动命令的 Linux 节点用户名相同)密码:设置连接HIVE的密码,如果没有配置 HIVE 权限管理,则密码置空即可数据库名:输入连接HIVE的数据库名称Jdbc连接参数:用于HIVE连接的参数设置,以JSON形式填写,没有参数可置空

  然后在工作流中可以选择SQL

  

  节点名称:自定义节点名称环境名称:HIVE 执行所需环境数据源:类型选择 HIVE,数据源选择上文配置的 HIVE 数据源SQL 类型:根据SQL 语句选择,此处选用默认的“查询”即可SQL 语句:要执行的 SQL 语句,末尾不能有分号,否则报错:语法错误

  4.1 邮箱告警实例配置

  POP3,IMAP,SMTP描述

  需要登陆管理员账户

  告警实例名称:在告警组配置时可以选择的告警插件实例名称,用户自定义选择插件:选择 Email 则为邮箱告警实例收件人:接收方邮箱地址,收件人不需要开启 SMTP 服务抄送人:抄送是指用户给收件人发出邮件的同时把该邮件发送给另外的人,收件人之外的收件方都是抄送人,“收件人”可以获知该邮件的所有抄送人;抄送人可以为空。mail.smtp.host:邮箱的 telegram的官网最新的下载的网站是多少 SMTP 服务器域名,对于 QQ 邮箱,为 smtp.qq.com。各邮箱的 SMTP 服务器见此链接:https://blog.csdn.net/wustzjf/article/details/52481309mail.smtp.port:邮箱的 SMTP 服务端口号,主流邮箱均为 25 端口,使用默认值即可mail.sender:发件方邮箱地址,需要开启 SMTP 服务mail.user:与 mail.sender 保持一致即可mail.password:获取的邮箱授权码。未列出的选项保留默认值或默认选项即可

   telegram 中文地方在哪里

  4.2 其他告警

  其他告警可以参考:https://dolphinscheduler.apache.org/zh-cn/docs/3.0.0

  同时还可以电话告警,这里有个运维平台是一站式集成的,睿象云官网:https://www.aiops.com/

  DolphinScheduler的环境变量是不和主机共享的,默认需要进入进行修改,也可以直接在admin用户下在可视化界面进行创建,创建节点的时候选择即可

  官方网站:https://airflow.apache.org

  1.1 概述

  Airflow是一个以编程方式编写,安排和监视工作流的平台。使用Airflow将工作流编写任务的有向无环图(DAG)。Airflow计划程序在遵循指定的依赖项,同时在一组工作线程上执行任务。丰富的命令实用程序使在DAG上执行复杂的调度变的轻而易举。丰富的用户界面使查看生产中正在运行的管道,监视进度以及需要时对问题进行故障排除变的容易

  1.2 名词解释

  Dynamic:Airflow配置需要实用Python,允许动态生产管道。这允许编写可动态。这允许编写可动态实例化管道的代码Extensible:轻松定义自己的运算符,执行程序并扩展库,使其适合于您的环境Elegant:Airlfow是精简的,使用功能强大的Jinja模板引擎,将脚本参数化内置于Airflow的核心中Scalable:Airflow具有模板块架构,并使用消息队列来安排任意数量的工作任务

  2.1 python环境安装

  2.2 安装Airflow

  3.1 修改数据库为mysql

  3.2 修改执行器

  官网不推荐在开发中使用顺序执行器,会造成任务调度阻塞

  文档:https://airflow.apache.org/docs/apache-airflow/2.4.3/howto/index.html

  4.1 环境部署启动

  编写脚本

  注意一些注意事项

  必须导包

  from airflow import DAG

  from airflow.operators.bash_operator import BashOperator

  default_args telegram 的官网的最新的下载的网址是什么 设置默认参数

  depends_on_past 是否开启任务依赖

  schedule_interval 调度频率

  retries 重试次数

  start_date 开始时间

  BashOperator 具体执行任务,如果为true前置任务必须成功完成才会走下一个依赖任务,如果为false则忽略是否成功完成

  task_id 任务唯一标识(必填)

  bash_command 具体任务执行命令

  set_upstream 设置依赖

  4.3 配置邮件服务器

  修改airflow配置文件,用stmps服务对应587端口,

  azkaban官网:https://azkaban.github.io/downloads.html

  1.1 上传jar包和配置sql

  首先获取azkaban的三个包,可以自行编译,github地址

  1.2 配置Executor Server

  Azkaban Executor Server处理工作流和作业的实际执行

  1.3 配置Web Server

  Azkaban Web Server处理项目管理,身份验证,计划和执行触发

  2.1 HelloWorld案例

  2.2 作业依赖案例

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

  2.3 自动失败重试案例

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

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

  2.4 手动失败重试案例

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

  在可视化界面,Enable和Disable下面都分别有如下参数:

  Parents:该作业的上一个任务Ancestors:该作业前的所有任务Children:该作业后的一个任务Descendents:该作业后的所有任务Enable All:所有的任务

  3.1 概述

  JavaProcess类型可以运行一个自定义主类方法,type类型为javaprocess,可用的配置为:

  Xms:最小堆Xmx:最大堆classpath:类路径java.class:要运行的Java对象,其中必须包含Main方法main.args:main方法的参数

  3.2 案例

  新建一个azkaban的maven工程,然后创建包名:com.atguigu,创建AzTest类

  打包成jar包azkaban-1.0-SNAPSHOT.jar,新建testJava.flow,内容如下

  **将Jar包、flow文件和project文件打包成javatest.zip **,然后上传执行官网的telegram 的的最新网站是多少

  4.1 概述

  条件工作流功能允许用户自定义执行条件来决定是否运行某些Job。条件可以由当前Job的父Job输出的运行时参数构成,也可以使用预定义宏。在这些条件下,用户可以在确定Job执行逻辑时获得更大的灵活性,例如,只要父Job之一成功,就可以运行当前Job

  4.2 运行时参数案例

  基本原理:父Job将参数写入环境变量所指向的文件;子Job使用 来获取父Job输出的参数并定义执行条件

  支持的条件运算符:

  (1)== 等于

  (2)!= 不等于

  (3)> 大于

  (4)>= 大于等于

  (5)< 小于

  (6)<= 小于等于

  (7)&& 与

  (8)|| 或

  (9)! 非

  需求分析:

  4.3 预定义宏案例

  Azkaban中预置了几个特殊的判断条件,称为预定义宏。预定义宏会根据所有父Job的完成情况进行判断,再决定是否执行。可用的预定义宏如下:

  (1)all_success: 表示父Job全部成功才执行(默认)

  (2)all_done:表示父Job全部完成才执行

  (3)all_failed:表示父Job全部失败才执行

  (4)one_success:表示父Job至少一个成功才执行

  (5)one_failed:表示父Job至少一个失败才执行

  首先申请好邮箱,然后配置

  Azkaban多Executor模式是指,在集群中多个节点部署Executor。在这种模式下, Azkaban web Server会根据策略,选取其中一个Executor去执行任务。为确保所选的Executor能够准确的执行任务,我们须在以下两种方案任选其一,推荐使用方案二。

  方案一:指定特定的Executor(hadoop102)去执行任务

  方案二:在Executor所在所有节点部署任务所需脚本和应用

  官网文档:https://azkaban.readthedocs.io/en/latest/configuration.html

seo