请参照快速上手
首页包含用户所有项目的任务状态统计、流程状态统计、工作流定义统计。
点击"项目管理"进入项目管理页面,点击“创建项目”按钮,输入项目名称,项目描述,点击“提交”,创建新的项目。
在项目管理页面点击项目名称链接,进入项目首页,如下图所示,项目首页包含该项目的任务状态统计、流程状态统计、工作流定义统计。
任务状态统计:在指定时间范围内,统计任务实例中状态为提交成功、正在运行、准备暂停、暂停、准备停止、停止、失败、成功、需要容错、kill、等待线程的个数
流程状态统计:在指定时间范围内,统计工作流实例中状态为提交成功、正在运行、准备暂停、暂停、准备停止、停止、失败、成功、需要容错、kill、等待线程的个数
工作流定义统计:统计用户创建的工作流定义及管理员授予该用户的工作流定义
test.sh
,脚本中调用资源命令为sh test.sh
;增加任务执行的先后顺序: 点击右上角图标连接任务;如下图所示,任务2和任务3并行执行,当任务1执行完,任务2、3会同时执行。
删除依赖关系: 点击右上角"箭头"图标,选中连接线,点击右上角"删除"图标
,删除任务间的依赖关系。
保存工作流定义: 点击”保存“按钮,弹出"设置DAG图名称"弹框,如下图所示,输入工作流定义名称,工作流定义描述,设置全局参数(选填,参考自定义参数),点击"添加"按钮,工作流定义创建成功。
其他类型任务,请参考 任务节点类型和参数设置。
点击项目管理->工作流->工作流定义,进入工作流定义页面,如下图所示:
点击项目管理->工作流->工作流定义,进入工作流定义页面,如下图所示,点击"上线"按钮,上线工作流。
点击”运行“按钮,弹出启动参数设置弹框,如下图所示,设置启动参数,点击弹框中的"运行"按钮,工作流开始运行,工作流实例页面生成一条工作流实例。
工作流运行参数说明:
* 失败策略:当某一个任务节点执行失败时,其他并行的任务节点需要执行的策略。”继续“表示:某一任务失败后,其他任务节点正常执行;”结束“表示:终止所有正在执行的任务,并终止整个流程。
* 通知策略:当流程结束,根据流程状态发送流程执行信息通知邮件,包含任何状态都不发,成功发,失败发,成功或失败都发。
* 流程优先级:流程运行的优先级,分五个等级:最高(HIGHEST),高(HIGH),中(MEDIUM),低(LOW),最低(LOWEST)。当master线程数不足时,级别高的流程在执行队列中会优先执行,相同优先级的流程按照先进先出的顺序执行。
* worker分组:该流程只能在指定的worker机器组里执行。默认是Default,可以在任一worker上执行。
* 通知组:选择通知策略||超时报警||发生容错时,会发送流程信息或邮件到通知组里的所有成员。
* 收件人:选择通知策略||超时报警||发生容错时,会发送流程信息或告警邮件到收件人列表。
* 抄送人:选择通知策略||超时报警||发生容错时,会抄送流程信息或告警邮件到抄送人列表。
* 补数:包括串行补数、并行补数2种模式。串行补数:指定时间范围内,从开始日期至结束日期依次执行补数,只生成一条流程实例;并行补数:指定时间范围内,多天同时进行补数,生成N条流程实例。
补数: 执行指定日期的工作流定义,可以选择补数时间范围(目前只支持针对连续的天进行补数),比如需要补5月1号到5月10号的数据,如下图所示:
串行模式:补数从5月1号到5月10号依次执行,流程实例页面生成一条流程实例;
并行模式:同时执行5月1号到5月10号的任务,流程实例页面生成十条流程实例。
点击项目管理->工作流->工作流定义,进入工作流定义页面,点击"导入工作流"按钮,导入本地工作流文件,工作流定义列表显示导入的工作流,状态为下线。
点击项目管理->工作流->工作流实例,进入工作流实例页面,如下图所示:
kill
worker进程,再执行kill -9
操作
点击项目管理->工作流->任务实例,进入任务实例页面,如下图所示,点击工作流实例名称,可跳转到工作流实例DAG图查看任务状态。
查看日志:点击操作列中的“查看日志”按钮,可以查看任务执行的日志情况。
conf/common.properties
# Users who have permission to create directories under the HDFS root path
hdfs.root.user=hdfs
# data base dir, 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
resource.upload.path=/dolphinscheduler
# resource storage type : HDFS,S3,NONE
resource.storage.type=HDFS
# whether kerberos starts
hadoop.security.authentication.startup.state=false
# java.security.krb5.conf path
java.security.krb5.conf.path=/opt/krb5.conf
# loginUserFromKeytab user
login.user.keytab.username=hdfs-mycluster@ESZ.COM
# loginUserFromKeytab path
login.user.keytab.path=/opt/hdfs.headless.keytab
# if resource.storage.type is HDFS,and your Hadoop Cluster NameNode has HA enabled, you need to put core-site.xml and hdfs-site.xml in the installPath/conf directory. In this example, it is placed under /opt/soft/dolphinscheduler/conf, and configure the namenode cluster name; if the NameNode is not HA, modify it to a specific IP or host name.
# if resource.storage.type is S3,write S3 address,HA,for example :s3a://dolphinscheduler,
# Note,s3 be sure to create the root directory /dolphinscheduler
fs.defaultFS=hdfs://mycluster:8020
#resourcemanager ha note this need ips , this empty if single
yarn.resourcemanager.ha.rm.ids=192.168.xx.xx,192.168.xx.xx
# If it is a single resourcemanager, you only need to configure one host name. If it is resourcemanager HA, the default configuration is fine
yarn.application.status.address=http://xxxx:8088/ws/v1/cluster/apps/%s
是对各种资源文件的管理,包括创建基本的txt/log/sh/conf/py/java等文件、上传jar包等各种类型文件,可进行编辑、重命名、下载、删除等操作。
文件格式支持以下几种类型:txt、log、sh、conf、cfg、py、java、sql、xml、hql、properties
上传文件:点击"上传文件"按钮进行上传,将文件拖拽到上传区域,文件名会自动以上传的文件名称补全
对可查看的文件类型,点击文件名称,可查看文件详情
点击文件列表的"下载"按钮下载文件或者在文件详情中点击右上角"下载"按钮下载文件
文件列表->点击"删除"按钮,删除指定文件
资源管理和文件管理功能类似,不同之处是资源管理是上传的UDF函数,文件管理上传的是用户程序,脚本及配置文件 操作功能:重命名、下载、删除。
和上传文件相同。
点击“创建UDF函数”,输入udf函数参数,选择udf资源,点击“提交”,创建udf函数。
目前只支持HIVE的临时UDF函数
数据源中心支持MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER等数据源
点击“数据源中心->创建数据源”,根据需求创建不同类型的数据源。
数据源:选择MYSQL
数据源名称:输入数据源的名称
描述:输入数据源的描述
IP主机名:输入连接MySQL的IP
端口:输入连接MySQL的端口
用户名:设置连接MySQL的用户名
密码:设置连接MySQL的密码
数据库名:输入连接MySQL的数据库名称
Jdbc连接参数:用于MySQL连接的参数设置,以JSON形式填写
点击“测试连接”,测试数据源是否可以连接成功。
1.使用HiveServer2方式连接
2.使用HiveServer2 HA Zookeeper方式连接
注意:如果开启了kerberos,则需要填写 Principal
注意:如果开启了kerberos,则需要填写 Principal
* 安全中心只有管理员账户才有权限操作,分别有队列管理、租户管理、用户管理、告警组管理、worker分组管理、令牌管理等功能,在用户管理模块可以对资源、数据源、项目等授权
* 管理员登录,默认用户名密码:admin/dolphinscheduler123
* 管理员有授权和用户管理等权限,没有创建项目和工作流定义的操作的权限。
* 普通用户可以创建项目和对工作流定义的创建,编辑,执行等操作。
* 注意:如果该用户切换了租户,则该用户所在租户下所有资源将复制到切换的新租户下。
编辑用户信息
修改用户密码
由于后端接口有登录检查,令牌管理提供了一种可以通过调用接口的方式对系统进行各种操作。
普通用户登录后,点击用户名下拉框中的用户信息,进入令牌管理页面,选择失效时间,点击"生成令牌"按钮,点击"提交"按钮,则该用户创建token成功。
调用示例:
/**
* test token
*/
public void doPOSTParam()throws Exception{
// create HttpClient
CloseableHttpClient httpclient = HttpClients.createDefault();
// create http post request
HttpPost httpPost = new HttpPost("http://127.0.0.1:12345/escheduler/projects/create");
httpPost.setHeader("token", "123");
// set parameters
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("projectName", "qzw"));
parameters.add(new BasicNameValuePair("desc", "qzw"));
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters);
httpPost.setEntity(formEntity);
CloseableHttpResponse response = null;
try {
// execute
response = httpclient.execute(httpPost);
// response status code 200
if (response.getStatusLine().getStatusCode() == 200) {
String content = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(content);
}
} finally {
if (response != null) {
response.close();
}
httpclient.close();
}
}
* 授予权限包括项目权限,资源权限,数据源权限,UDF函数权限。
* 管理员可以对普通用户进行非其创建的项目、资源、数据源和UDF函数进行授权。因为项目、资源、数据源和UDF函数授权方式都是一样的,所以以项目授权为例介绍。
* 注意:对于用户自己创建的项目,该用户拥有所有的权限。则项目列表和已选项目列表中不会显示。
每个worker节点都会归属于自己的Worker分组,默认分组为default.
在任务执行时,可以将任务分配给指定worker分组,最终由该组中的worker节点执行该任务.
新增/更新 worker分组
示例:
worker.groups=default,test
shell节点,在worker执行的时候,会生成一个临时shell脚本,使用租户同名的linux用户执行这个脚本。
点击项目管理-项目名称-工作流定义,点击"创建工作流"按钮,进入DAG编辑页面。
工具栏中拖动到画板中,如下图所示:
节点名称:一个工作流定义中的节点名称是唯一的。
运行标志:标识这个节点是否能正常调度,如果不需要执行,可以打开禁止执行开关。
描述信息:描述该节点的功能。
任务优先级:worker线程数不足时,根据优先级从高到低依次执行,优先级一样时根据先进先出原则执行。
Worker分组:任务分配给worker组的机器机执行,选择Default,会随机选择一台worker机执行。
失败重试次数:任务失败重新提交的次数,支持下拉和手填。
失败重试间隔:任务失败重新提交任务的时间间隔,支持下拉和手填。
超时告警:勾选超时告警、超时失败,当任务超过"超时时长"后,会发送告警邮件并且任务执行失败.
脚本:用户开发的SHELL程序。
资源:是指脚本中需要调用的资源文件列表,资源中心-文件管理上传或创建的文件。
自定义参数:是SHELL局部的用户自定义参数,会替换脚本中以${变量}的内容。
拖动工具栏中的
任务节点到画板中,如下图所示:
拖动工具栏中的
任务节点到画板中,如下图所示:
依赖节点提供了逻辑判断功能,比如检查昨天的B流程是否成功,或者C流程是否执行成功。
例如,A流程为周报任务,B、C流程为天任务,A任务需要B、C任务在上周的每一天都执行成功,如图示:
假如,周报A同时还需要自身在上周二执行成功:
拖动工具栏中的
任务节点到画板中,如下图所示:
spark-submit
方式提交任务拖动工具栏中的
任务节点到画板中,如下图所示:
注意:JAVA和Scala只是用来标识,没有区别,如果是Python开发的Spark则没有主函数的class,其他都是一样
hadoop jar
方式提交任务拖动工具栏中的
任务节点到画板中,如下图所示:
python **
方式提交任务。拖动工具栏中的
任务节点到画板中,如下图所示:
注意:JAVA和Scala只是用来标识,没有区别,如果是Python开发的Flink则没有主函数的class,其他都是一样
变量 | 含义 |
---|---|
${system.biz.date} | 日常调度实例定时的定时时间前一天,格式为 yyyyMMdd,补数据时,该日期 +1 |
${system.biz.curdate} | 日常调度实例定时的定时时间,格式为 yyyyMMdd,补数据时,该日期 +1 |
${system.datetime} | 日常调度实例定时的定时时间,格式为 yyyyMMddHHmmss,补数据时,该日期 +1 |
支持代码中自定义变量名,声明方式:${变量名}。可以是引用 "系统参数" 或指定 "常量"。
我们定义这种基准变量为 [...] 格式的,[yyyyMMddHHmmss] 是可以任意分解组合的,比如:$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd] 等
也可以使用以下格式:
* 后 N 年:$[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]