离线数仓--大数据技术之DolphinScheduler

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 离线数仓--大数据技术之DolphinScheduler

1、DolphinScheduler简介


1.1 DolphinScheduler概述


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


1.2 DolphinScheduler核心架构


DolphinScheduler的主要角色如下:

MasterServer采用分布式无中心设计理念,MasterServer主要负责DAG任务划分、任务提交、任务监控,并同时监听其它MasterServer和WorkerServer的健康状态。

WorkerServer也采用分布式无中心设计理念。WorkerServer主要负责任务的执行好提供日志服务。

Zookeeper服务,系统中的MasterServer和WorkServer节点都是通过Zookeeper来进行集群管理和容错。

Alert服务,提供告警相关服务。

API接口层,主要负责处理前端UI层的请求。

UI,系统的前端页面,提供系统的各种可视化操作界面。

image.png


2、DolphinScheduler部署说明


2.1 软硬件环境要求


2.1.1 操作系统版本要求


操作系统 版本
Red Hat Enterprise Linux 7.0及以上
CentOS 7.0及以上
Oracle Enterprise Linux 7.0 及以上
Ubuntu LTS 16.04及以上


2.1.2 服务器硬件要求


CPU 内存 硬盘类型 网络 实例数量
4核+ 8GB+ SAS 千兆网卡 1+


2.2 部署模式


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


2.2.1 单机模式


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


2.2.2 伪集群模式


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


2.2.3 集群模式


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


3、DolphinScheduler集群模式部署


3.1 集群规划


集群模式下,可以配置多个Master及多个Worker。通常可配置2~3个Master,若干个Worker。由于集群资源有限,此处配置一个Master,三个Worker,集群规划如下。


node1

Master、Worker

node2

Worker

node3

Worker


3.2 前置准备工作


1、三台节点均需部署JDK(1.8+),并配置相关环境变量。

2、需部署数据库,支持MySQL(5.7+)或者PostgreSQL(8.2.15+)。如 MySQL 则需要 JDBC Driver 8.0.16。

3、需部署Zookeeper(3.4.6+)。

4、如果启用 HDFS 文件系统,则需要 Hadoop(2.6+)环境。

5、三台节点均需安装进程管理工具包psmisc。

##三台节点都有执行
sudo yum install -y psmis


3.3 解压DolphinScheduler安装包


1、获取安装包

链接:https://pan.baidu.com/s/1KFvnZlanfVg4XOgc1T08aA

提取码:zhm6

2、上传DolphinScheduler安装包到hadoop102节点的/opt/software目录

3、解压安装包到当前目录

##注:解压目录并非最终的安装目录
tar -zxvf apache-dolphinscheduler-1.3.9-bin -C .


3.4 配置一键部署脚本(注意我打了中文注释的配置)

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#


# NOTICE :  If the following config has special characters in the variable `.*[]^${}\+?|()@#&`, Please escape, for example, `[` escape to `\[`
# postgresql or mysql
 #注意:数据库相关配置的 value 必须加引号,否则配置无法生效
 # 数据库类型
dbtype="mysql"

# db config
# db address and port
# 数据库 ip和端口号
dbhost="hadoop102:3306"

# db username
# 数据库用户名
username="dolphinscheduler"

# database name
# 数据库密码
dbname="dolphinscheduler"

# db passwprd
# NOTICE: if there are special characters, please use the \ to escape, for example, `[` escape to `\[`
password="dolphinscheduler"

# zk cluster
zkQuorum="hadoop102:2181,hadoop103:2181,hadoop104:2181"

# Note: the target installation path for dolphinscheduler, please not config as the same as the current path (pwd)
# DS 安装路径,如果不存在会创建
installPath="/opt/module/dolphinscheduler"

# deployment user
# Note: the deployment user needs to have sudo privileges and permissions to operate hdfs. If hdfs is enabled, the root directory needs to be created by itself
# 部署用户,任务执行服务是以 sudo -u {linux-user} 切换不同 Linux 用户的方式来实现多租户运行作业,因此该用户必须有免密的 sudo 权限。
deployUser="zhm"


# alert config
# mail server host
mailServerHost="smtp.exmail.qq.com"

# mail server port
# note: Different protocols and encryption methods correspond to different ports, when SSL/TLS is enabled, make sure the port is correct.
mailServerPort="25"

# sender
mailSender="xxxxxxxxxx"

# user
mailUser="xxxxxxxxxx"

# sender passwodolphinschedulerrd
# note: The mail.passwd is email service authorization code, not the email login password.
mailPassword="xxxxxxxxxx"

# TLS mail protocol support
starttlsEnable="true"

# SSL mail protocol support
# only one of TLS and SSL can be in the true state.
sslEnable="false"

#note: sslTrust is the same as mailServerHost
sslTrust="smtp.exmail.qq.com"

# user data local directory path, please make sure the directory exists and have read write permissions
dataBasedirPath="/tmp/dolphinscheduler"

# resource storage type: HDFS, S3, NONE
# 资源存储类型
resourceStorageType="HDFS"

# resource store on HDFS/S3 path, resource file will store to this hadoop hdfs path, self configuration, please make sure the directory exists on hdfs and have read write permissions. "/dolphinscheduler" is recommended
# 资源上传路径
resourceUploadPath="/dolphinscheduler"

# if resourceStorageType is HDF
# S,defaultFS write namenode address,HA you need to put core-site.xml and hdfs-site.xml in the conf directory.
# if S3,write S3 address,HA,for example :s3a://dolphinscheduler,
# Note,s3 be sure to create the root directory /dolphinscheduler
defaultFS="hdfs://hadoop102:8020"

# if resourceStorageType is S3, the following three configuration is required, otherwise please ignore
s3Endpoint="http://192.168.xx.xx:9010"
s3AccessKey="xxxxxxxxxx"
s3SecretKey="xxxxxxxxxx"

# resourcemanager port, the default value is 8088 if not specified
# yarn RM http 访问端口
resourceManagerHttpAddressPort="8088"

# if resourcemanager HA is enabled, please set the HA IPs; if resourcemanager is single, keep this value empty
# Yarn RM 高可用 ip,若未启用 RM 高可用,则将该值置空
yarnHaIps=""

# if resourcemanager HA is enabled or not use resourcemanager, please keep the default value; If resourcemanager is single, you only need to replace ds1 to actual resourcemanager hostname
# Yarn RM 主机名,若启用了 HA 或未启用 RM,保留默认值
singleYarnIp="hadoop103"

# who have permissions to create directory under HDFS/S3 root path
# Note: if kerberos is enabled, please config hdfsRootUser=
# 拥有 HDFS 根目录操作权限的用户
hdfsRootUser="zhm"

# kerberos config
# whether kerberos starts, if kerberos starts, following four items need to config, otherwise please ignore
kerberosStartUp="false"
# kdc krb5 config file path
krb5ConfPath="$installPath/conf/krb5.conf"
# keytab username
keytabUserName="hdfs-mycluster@ESZ.COM"
# username keytab path
keytabPath="$installPath/conf/hdfs.headless.keytab"
# kerberos expire time, the unit is hour
kerberosExpireTime="2"

# api server port
apiServerPort="12345"


# install hosts
# Note: install the scheduled hostname list. If it is pseudo-distributed, just write a pseudo-distributed hostname
# 将要部署任一 DolphinScheduler 服务的服务器主机名或 ip 列表
ips="hadoop102,hadoop103,hadoop104"

# ssh port, default 22
# Note: if ssh port is not default, modify here
sshPort="22"

# run master machine
# Note: list of hosts hostname for deploying master
# master 所在主机名列表,必须是 ips 的子集
masters="hadoop102"

# run worker machine
# note: need to write the worker group name of each worker, the default value is "default"
# worker主机名及队列,此处的 ip 必须在 ips 列表中
workers="hadoop102:default,hadoop103:default,hadoop104:default"

# run alert machine
# note: list of machine hostnames for deploying alert server
# 告警服务所在服务器主机名
alertServer="hadoop102"

# run api machine
# note: list of machine hostnames for deploying api server
apiServers="hadoop102"


3.5 初始化数据库


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

1、创建数据库

mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
• 1

2、创建用户

mysql> CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
• 1

注意:若出现以下错误信息,表明新建用户的密码过于简单

3、赋予用户相应权限

mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
mysql> flush privileges;

4、拷贝MySQL驱动到DolphinScheduler的解压目录下的lib中(这个要根据自己的数据库版本)

cp /opt/software/mysql-connector-java-5.1.16.jar lib/
• 1

5、执行数据库初始化脚本

数据库初始化脚本位于DolphinScheduler解压目录下的script目录中,即/opt/software/ds/apache-dolphinscheduler-1.3.9-bin/script/

script/create-dolphinscheduler.sh
• 1


3.6 一键部署DolphinScheduler


1、启动Zookeeper集群

zk.sh start
• 1

2、一键部署并启动DolphinScheduler(脚本在解压的目录下)

./install.sh 
• 1

3、查看DolphinScheduler进程

image.png

4、访问DolphinScheduler UI

DolphinScheduler UI地址为http://hadoop102:12345/dolphinscheduler

初始用户的用户名为:admin,密码为dolphinscheduler123

image.png

3.7 DolphinScheduler启停命令


DolphinScheduler的启停脚本均位于其安装目录的bin目录下。

1、一键启停所有服务(要进其安装目录下启动)

./bin/start-all.sh
./bin/stop-all.sh

注意:和hadoop的启停脚本进行区分。

2、启停Master

./bin/dolphinscheduler-daemon.sh start master-server
./bin/dolphinscheduler-daemon.sh stop master-server

3、启听Worker

./bin/dolphinscheduler-daemon.sh start worker-server
./bin/dolphinscheduler-daemon.sh stop worker-server

4、启停API

./bin/dolphinscheduler-daemon.sh start api-server
./bin/dolphinscheduler-daemon.sh stop api-server

5、启停 Logger

./bin/dolphinscheduler-daemon.sh start logger-server
./bin/dolphinscheduler-daemon.sh stop logger-server

6、启停 Alert

./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server


4、DolphinScheduler入门


4.1 安全中心配置


安全中心主要有租户管理、用户管理、告警组管理、告警实例管理、Worker分组管理、Yarn队列管理、环境管理、令牌管理等功能安全中心只有管理员账户才有操作权限。

image.png

4.1.1 租户管理


租户对应的是Linux的用户,用于Worker提交作业所使用的用户。如果Linux没有这个用户,则会导致任务运行失败。你可以通过修改work.properties配置文件中参数work.tenant,auto.create=true(默认值为false)实现当Linux用户不存在时自动创建该用户。work.tenant.auto.create=true参数会要求Worker可以免密运行sudo命令。

此处创建一个zhm租户,如下图。

注:

租户编码:是Linux上的用户,唯一,不能重复。

队列:该租户提交Yarn任务时的默认队列。


4.1.2 用户管理


用户对应的是DolphinScheduler的用户,用于登录DolphinScheduler。用户分管理员用户和普通用户。

管理员有授权和用户管理等权限,没有创建项目和工作流定义的操作的权限。

普通用户可以创建项目和对工作流定义的创建,编辑,执行等操作。

注意:如果该用户切换了租户,则该用户在租户下所以资源将复制到切换的新租户下

注:

用户名:DolphinScheduler登录账户

租户:该用户关联的租户

队列:默认为租户所关联的队列。

邮件、手机号:主要用于告警通知


4.1.3 告警组管理


告警组是在启动时设置的参数,在流程结束以后会将流程的状态和其他信息以邮件形式发送给告警组。

管理员进入安全中心->告警组管理页面,点击“创建告警组”按钮,创建告警组。

注意:

组名称:用户自定义的告警组名称。

告警插件实例:用户创建的告警实例。


4.1.4 Worker分组管理


在任务执行时,可以将任务分配给指定Worker组,最终由该组中的Worker节点执行该任务。每个worker节点都会归属于自己的Worker分组,默认分组为default。

1、Worker 分组修改方式一

打开要设置分组的worker节点上的"conf/worker.properties"配置文件. 修改worker.groups参数。

worker.groups参数后面对应的为该worker节点对应的分组名称,默认为default。

如果该worker节点对应多个分组,则以逗号隔开。


2、Worker 分组修改方式二

在运行中修改worker所属的worker分组,如果修改成功,worker就会使用这个新建的分组,忽略worker.properties中的配置。即方式二优先级高于方式一。修改步骤为"安全中心 -> worker分组管理 -> 点击 ‘新建worker分组’ -> 输入’组名称’ -> 选择已有worker -> 点击’提交’"。

如下图所示:


4.1.5 Yarn队列管理


队列是在执行spark、mapreduce等程序,需要用到“队列”参数时使用的。

此处的队列对应的是Yarn调度器的资源队列。故队列概念只对跑在Yarn上的任务类型有效。此处创建出的队列,可供后续任务进行选择。需要注意的是,在DolphinScheduler中创建队列,并不会影响到Yarn调度器的队列配置。

此处可不创建队列。

注意:

名称:DS 执行任务时可以选择的队列名称。

队列值:与名称相对应的 Yarn 调度队列的名称。


4.1.6令牌管理


令牌用于通过接口访问DolphinScheduler各项服务时的用户验证。普通用户通过UI页面访问各项服务时,无需使用令牌。若需将DolphinScheduler与第三方服务进行集成,则需调用其接口,此时需使用令牌。


4.2 项目管理

4.2.1 切换用户


默认不使用管理员用户操作项目和工作流等,故需先切换到普通用户zhm。

1、admin用户退出

2、使用zhm用户登录


4.2.2 创建项目



4.3 工作流基础配置


下图为工作流配置页面,一共包含三个模块,分别为工作流定义、工作流实例和任务实例。

工作流定义:用于定义工作流,包括工作流各节点任务详情及各节点依赖关系等。

工作流实例:工作流每执行一次就会生成一个工作流实例。此处可查看正在运行的工作流以及已经完成的工作流。

任务实例:工作流的一个节点任务,每执行一次就会生成一个任务实例。此次可用于查看正在执行的节点任务以及已经完成的节点任务。


4.3.1 工作流定义


工作流要求:工作流需要包含三个Shell类型的任务节点,分别是A、B、C。三个任务的依赖关系如下图所示:

1、创建节点流

2、配置任务节点

(1)节点A

(2)节点B

(3)节点C

3、配置任务节点的依赖关系

(1)直接对DAG图进行操作

2、保存工作流定义


4.3.2 提交执行工作流


1、上线工作流

工作流需要上线之后才能执行。处于上线状态的工作流定义不可修改,如需修改,需先下线。


2、单次运行工作流

3、定时执行工作流

(1)点击定时


(2)配置定时规则(此处配置的是每5秒)

(3)定时管理

(4)定时上线

(5)查看工作流实例


4.3.3 查看任务实例


1、查看所有任务实例

2、查看任务实例日志


5、DolphinScheduler进阶


5.1 工作流传参


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


5.1.1 内置参数


DolphinScheduler提供了一些时间相关的系统参数,方便定时调度使用。

1、基础内置参数

变量名

参数

说明

system.biz.date

${system.biz.date}

定时时间前一天,格式为 yyyyMMdd

system.biz.curdate

${system.biz.curdate} 定时时间,格式为 yyyyMMdd

system.datetime

${system.datetime} 定时时间,格式为 yyyyMMddHHmmss

2、衍生内置参数

可通过衍生内置参数,设置任意格式、任意时间的容器

(1)自定义日期格式

可以对 $[yyyyMMddHHmmss] 任意分解组合,如 $[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd]。

(2)使用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 月

(3)直接加减数字  

在自定义格式后直接“+/-”数字,单位为“天”。

参数 说明

$[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 分钟

3、配置示例

若执行的脚本需要一个格式为yyyy-MM-dd的前一天日期的参数,进行如下配置即可。


5.1.2 全局参数


全局参数是指针对整个工作流的所有任务节点都有效的参数,在工作流定义页面配置。

1、修改DAG测试工作流每个任务节点如下

(1)节点A配置(B、C都这样配置脚本内容就可以)

2、保存工作流,并设置全局参数

3、执行工作流,查看三个任务节点输出日志


5.1.3 本地参数


局部参数是指只针对单个任务节点有效的参数


5.1.4 参数传递


1、本地任务使用全局参数

通过 ${param} 方式引用全局参数,5.1.2 节中各节点的配置就引用了全局参数。

2、上游任务传递给下游任务

目前传递方向仅支持上游单向传递给下游。目前支持这个特性的任务类型有:Shell、SQL、Procedure。

如果要将该节点的结果传递给有依赖关系的下游节点,当定义上游节点时,需要在设置自定义参数时选择方向为 OUT。


5.1.5 参数优先级


(1)本地参数 > 全局参数 > 上游任务传递的参数;

(2)多个上游节点均传递同名参数时,下游节点会优先使用值为非空的参数;

(3)如果存在多个值为非空的参数,则按照上游任务的完成时间排序,选择完成时间最早的上游任务对应的参数。


5.2 引用依赖资源


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


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


1、文件管理

文件管理是对各种资源文件的管理,包括创建基本的txt/log/sh/conf/py/java等文件、上传jar包等各种类型文件,可进行编辑、重命名、下载、删除等操作。

(1)创建文件

(2)上传文件

点击"上传文件"按钮进行上传,将文件拖拽到上传区域,文件名会自动以上传的文件名称补全。

(3)引用文件

(3)引用文件

2、UDF管理

(1)资源管理

资源管理和文件管理功能类似,不同之处是资源管理是上传的UDF函数,文件管理上传的是用户程序,脚本及配置文件 操作功能:重命名、下载、删除。上传方式同上。

(2)函数管理

创建 UDF 函数。

UDF函数名称:输入UDF函数时的名称

包名类名:输入UDF函数的全路径

UDF资源:设置创建的UDF对应的资源文件


5.3 数据源配置


数据源中心支持MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER等数据源。

此处仅对 HIVE 数据源进行介绍。

1、配置Hive数据源

数据源:选择HIVE。

数据源名称:输入数据源的名称。

描述:输入数据源的描述,可置空。

IP/主机名:输入连接HIVE的IP。

端口:输入连接HIVE的端口,默认 10000。

用户名:设置连接HIVE的用户名,如果没有配置 HIVE 权限管理,则用户名可以任意,但 HIVE 表数据存储在 HDFS,为了保证对所有表的数据均有操作权限,此处选择 HDFS 超级用户 atguigu(注:HDFS 超级用户名与执行 HDFS 启动命令的 Linux 节点用户名相同)。

密码:设置连接HIVE的密码,如果没有配置 HIVE 权限管理,则密码置空即可。

数据库名:输入连接HIVE的数据库名称。

Jdbc连接参数:用于HIVE连接的参数设置,以JSON形式填写,没有参数可置空。


2、使用Hive数据源

(1)新建 SQL 节点

(2)配置节点

节点名称:自定义节点名称。

环境名称:HIVE 执行所需环境

数据源:类型选择 HIVE,数据源选择上文配置的 HIVE 数据源。

SQL 类型:根据SQL 语句选择,此处选用默认的“查询”即可。

SQL 语句:要执行的 SQL 语句,末尾不能有分号,否则报错:语法错误。


5.4 告警实例配置


5.4.1 邮箱告警实例配置


如需使用DolphinScheduler的邮件告警通知功能,需要准备一个电子邮箱账号,并启用SMTP服务。此处以 QQ 邮箱为例。

1、POP3,IMAP,SMTP

(1)POP3

POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。(与IMAP有什么区别?)

(2)SMTP

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。

增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

(3)IMAP

IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。

(4)邮件发送流程

i)DS 使用 mail.sender 指定的邮箱发送邮件到 SMTP 服务器,要求此邮箱开启 SMTP 服务;

ii)SMTP 服务将邮件转交给 POP3 或 IMAP 服务,经测试,通常SMTP 服务和 POP3 或 IMAP 服务处于同一台服务器;

iii)收件邮箱客户端从 IMAP/POP3 服务器拉取邮件,某些邮箱可以设置邮件刷新时间,以此来控制客户端从服务端拉取邮件的频率。

iv)需要注意:此处的邮件客户端均为第三方右键客户端,登陆邮箱输入的密码为授权码,使用 web 端收发邮件的流程可能有所不同。


2、获取授权码

(1)开启SMTP服务

拖动进度条在页面下方找到下图所示内容,开启 POP3/SMTP | IMAP/SMTP 任一服务即可。

(2)生成授权码

点击“生成授权码”,按照提示信息操作后点击“我已发送”即可生成授权码。授权码可以生成多次,若遗忘重新生成即可。

3、DolphinScheduler 配置

(1)什么配置好了要重启alert服务,可以单点重启,也可以全部重启

(2)设置告警组(要切换回管理员用户去设置)

设置工作流的用户加入该组

再切换回zhm用户去执行工作流

最后看自己的邮箱有没有收到信息

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
存储 机器学习/深度学习 SQL
大数据处理与分析技术
大数据处理与分析技术
139 2
|
2月前
|
存储 分布式计算 NoSQL
【赵渝强老师】大数据技术的理论基础
本文介绍了大数据平台的核心思想,包括Google的三篇重要论文:Google文件系统(GFS)、MapReduce分布式计算模型和BigTable大表。这些论文奠定了大数据生态圈的技术基础,进而发展出了Hadoop、Spark和Flink等生态系统。文章详细解释了GFS的架构、MapReduce的计算过程以及BigTable的思想和HBase的实现。
104 0
|
3天前
|
SQL 存储 分布式计算
MaxCompute近实时数仓能力升级
本文介绍了阿里云自研的离线实时一体化数仓,重点涵盖MaxCompute和Hologres两大产品。首先阐述了两者在ETL处理、AP分析及Serverless场景中的核心定位与互补关系。接着详细描述了MaxCompute在近实时能力上的升级,包括Delta Table形态、增量计算与查询支持、MCQ 2.0的优化等关键技术,并展示了其性能提升的效果。最后展望了未来在秒级数据导入、多引擎融合及更高效资源利用方面的改进方向。
|
14天前
|
数据挖掘 OLAP BI
OLAP技术:数据分析的修仙秘籍初探
OLAP(联机分析处理)是一种多维数据分析技术,能够从不同角度洞察数据,揭示隐藏的趋势和模式。它最早由Edgar F. Codd在1993年提出,旨在弥补传统OLTP系统的不足,支持复杂的数据分析与决策支持。OLAP操作包括钻取、上卷、切片、切块和旋转等,帮助用户灵活地探索数据。广泛应用于财务报告、市场分析、库存管理和预测分析等领域,是现代商业智能的重要工具。
59 7
|
15天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
51 2
|
29天前
|
SQL 运维 大数据
轻量级的大数据处理技术
现代大数据应用架构中,数据中心作为核心,连接数据源与应用,承担着数据处理与服务的重要角色。然而,随着数据量的激增,数据中心面临运维复杂、体系封闭及应用间耦合性高等挑战。为缓解这些问题,一种轻量级的解决方案——esProc SPL应运而生。esProc SPL通过集成性、开放性、高性能、数据路由和敏捷性等特性,有效解决了现有架构的不足,实现了灵活高效的数据处理,特别适用于应用端的前置计算,降低了整体成本和复杂度。
|
2月前
|
机器学习/深度学习 存储 大数据
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系,保留最大方差信息,实现数据压缩、去噪及可视化。本文详解PCA原理、步骤及其Python实现,探讨其在图像压缩、特征提取等领域的应用,并指出使用时的注意事项,旨在帮助读者掌握这一强大工具。
92 4
|
2月前
|
机器学习/深度学习 存储 大数据
云计算与大数据技术的融合应用
云计算与大数据技术的融合应用
|
2月前
|
SQL 存储 大数据
单机顶集群的大数据技术来了
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
|
2月前
|
SQL 存储 算法
比 SQL 快出数量级的大数据计算技术
SQL 是大数据计算中最常用的工具,但在实际应用中,SQL 经常跑得很慢,浪费大量硬件资源。例如,某银行的反洗钱计算在 11 节点的 Vertica 集群上跑了 1.5 小时,而用 SPL 重写后,单机只需 26 秒。类似地,电商漏斗运算和时空碰撞任务在使用 SPL 后,性能也大幅提升。这是因为 SQL 无法写出低复杂度的算法,而 SPL 提供了更强大的数据类型和基础运算,能够实现高效计算。

相关产品

  • 云原生大数据计算服务 MaxCompute