2024年11月DolphinScheduler下载-可视化工作流任务调度系统 v1.3.4
⑴DolphinScheduler是一款体积轻量专业实用的分布式去中心化易扩展的可视化DAG工作流调度工具,可以帮助用户解决各种数据处理流程中错综复杂的依赖关系,可以帮助用户梳理数据之间的联系,方便用户对系统数据进行调度和各种数据处理;Apache
⑵DolphinScheduler界面简洁直观操作简单方便易使用,支持多用户多任务类型操作,支持自定义任务类型分布式计划等多种功能,可以让用户对工作流定时调度依赖关系调度和工作流全局参数及节点自定义设置等操作,可以说是一款非常灵活便捷且非常专业的可视化工作流任务调度系统软件。
⑶以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态
⑷支持丰富的任务类型:ShellMRSparkSQL(mysqlpostgresqlhivesparksql),Python,Sub_ProcessProcedure等
⑸支持工作流定时调度依赖调度手动调度手动暂停/停止/恢复,同时支持失败重试/告警从指定节点恢复失败Kill任务等操作
⑹支持工作流优先级任务优先级及任务的故障转移及任务超时告警/失败
⑺支持工作流全局参数及节点自定义参数设置
⑻支持资源文件的在线上传/下载,管理等,支持在线文件创建编辑
⑼支持任务日志在线查看及滚动在线下载日志等
⑽实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化
⑾支持对Master/Worker cpu load,memory,cpu在线查看
⑿支持工作流运行历史树形/甘特图展示支持任务状态统计流程状态统计
⒀分散的多主机和多工人,HA自身支持,过载处理
⒁所有流程定义操作均可视化,可视化流程一目了然,一键式部署即可定义关键信息
⒂支持暂停,恢复操作。支持多租户。支持更多任务类型,例如,spark,hive,mr,shell,python,sub_process
⒃支持自定义任务类型,分布式计划,整体计划能力将随着集群规模线性增加
⒄主页包含所有用户项目的任务状态统计信息,过程状态统计信息和工作流定义统计信息。
⒅单击“项目->创建项目”,输入项目名称,描述,然后单击“提交”以创建新项目。
⒆单击项目名称以进入项目主页。
⒇项目主页包含项目的任务状态统计信息,过程状态统计信息和工作流定义统计信息。
⒈任务状态统计信息:它是指在给定时间范围内要运行,失败,正在运行,已完成和成功的任务数量的统计信息。
⒉流程状态统计信息:它是指在指定时间范围内等待,失败,运行,完成和成功的流程实例数的统计信息。
⒊流程定义统计信息:计算用户创建的流程定义和管理员授予用户的流程定义。
⒋转到项目主页,单击“流程定义”,然后进入流程定义的列表页面。
⒌单击“创建流程”以创建新的流程定义。
⒍将“ SHELL”节点拖到画布上,然后添加一个Shell任务。
⒎填写节点名称,描述和脚本字段。
⒏选择“任务优先级”将优先考虑执行队列中的高级任务。具有相同优先级的任务将按照先进先出的顺序执行。
⒐超时警报。填写“加班时间”。当任务执行时间超过超时时间时,它会发出警报并随着时间的推移而失败。
⒑填写“自定义参数”并参考自定义参数
⒒增加节点之间的执行顺序:单击“线路连接”。如图所示,任务和任务并行执行。执行任务时,任务和任务同时执行。
⒓删除依赖关系:单击箭头图标以“拖动节点并选择项目”,选择连接线,然后单击删除图标以删除节点之间的依赖关系。
⒔单击“保存”,输入流程定义的名称,流程定义的描述,并设置全局参数。
⒕有关其他类型的节点,请参阅任务节点类型和参数设置
⒖离线状态的流程定义可以编辑,但不能运行,因此在线工作流程是第一步。
⒗单击流程定义,返回到流程定义列表,单击图标“在线”,在线流程定义。
⒘在将工作流设置为脱机之前,定时管理中的定时任务应为离线,以便可以成功将工作流的定义设置为离线。
⒙单击“运行”以执行该过程。操作参数说明:
⒚失败策略:当一个任务节点执行失败时,其他并行任务节点也需要执行该策略。“继续”表示形式:其他任务节点正常执行,“结束”表示形式:终止所有正在进行的任务并终止整个过程。
⒛通知策略:流程结束后,根据流程状态发送流程执行信息通知邮件。
①进程优先级:进程运行的优先级分为五个级别:最高,最高,中等,最低和最低。高级别进程首先在执行队列中执行,并且优先级相同的进程首先以先进先出的顺序执行。
②工作组:此过程只能在指定的计算机组中执行。默认情况下,默认情况下可以在任何工作程序上执行。
③通知组:当过程结束或发生容错时,将通过邮件将过程信息发送给通知组的所有成员。
④收件人:输入邮箱,然后按Enter键保存。当过程结束并且发生容错时,警报消息将发送到收件人列表。
⑤抄送:输入邮箱,然后按Enter键保存。当过程结束并且发生容错时,警报消息将复制到复印机列表中。
⑥补码:要实现指定日期的工作流程定义,您可以选择补码的时间范围(当前仅支持连续天数,例如月日至月日的数据,如图所示:
⑦补码执行模式包括串行执行和并行执行。在串行模式下,补码将从月日到月日顺序执行。在并行模式下,从月日到月日的任务将同时执行。
⑧创建时序:“流程定义->时序”
⑨在起止时间范围内选择起止时间,超出范围的常规正常工作将不会继续产生定时的工作流实例。
⑩添加一个计时器,该计时器每天凌晨:执行一次,如下所示:
Ⅰ及时在线,新创建的计时器离线。您需要单击“定时管理->在线”才能正常工作。
Ⅱ单击“流程实例”以查看流程实例列表。
Ⅲ单击进程名称以查看任务执行的状态。
Ⅳ单击任务节点,单击“查看日志”以查看任务执行日志。
Ⅴ单击任务实例节点,单击查看历史记录以查看流程实例运行的任务实例的列表。
Ⅵ工作流实例上的操作:
Ⅶ编辑器:您可以编辑终止的过程。编辑后保存时,可以选择是否更新流程定义。
Ⅷ重新运行:已终止的进程可以重新执行。
Ⅸ恢复失败:对于失败的进程,可以从失败的节点开始执行恢复失败操作。
Ⅹ停止:停止正在运行的进程,后台将kill先kill -执行工作进程,然后再进行操作。
㈠暂停:可以暂停正在运行的进程,系统状态变为等待执行,等待任务执行结束,并暂停下一个要执行的任务。
㈡还原暂停:可以还原已暂停的进程并直接从已暂停的节点运行
㈢删除:删除流程实例和流程实例下的任务实例
㈣甘特图:甘特图的垂直轴是流程实例下任务实例的拓扑顺序,水平轴是任务实例的运行时间,如图所示:
㈤单击“任务实例”以进入“任务列表”页面并查询任务的性能。
㈥单击操作列中的“查看日志”以查看任务执行的日志。
㈦数据源中心支持MySQL,POSTGRESQL,HIVE和Spark数据源。
㈧创建和编辑MySQL数据源
㈨单击“数据源->创建数据源”以根据要求创建不同类型的数据源。
㈩数据源:选择MYSQL
数据源名称:输入数据源的名称
描述:输入数据源的描述
IP:输入IP以连接到MySQL
端口:输入用于连接MySQL的端口
用户名:设置用户名以连接到MySQL
密码:设置密码以连接到MySQL
数据库名称:输入连接MySQL的数据库的名称
Jdbc连接参数:MySQL连接的参数设置,以JSON形式填写
单击“测试连接”以测试数据源是否可以成功连接。
创建和编辑POSTGRESQL数据源
数据源:选择POSTGRESQL
数据源名称:输入数据源的名称
描述:输入数据源的描述
IP:输入IP以连接到POSTGRESQL
端口:连接POSTGRESQL的输入端口
用户名:设置用户名以连接到POSTGRESQL
密码:设置密码以连接到POSTGRESQL
数据库名称:输入连接到POSTGRESQL的数据库的名称
Jdbc连接参数:POSTGRESQL连接的参数设置,以JSON形式填写
创建和编辑HIVE数据源
.连接HiveServer
数据源:选择HIVE
数据源名称:输入数据源的名称
描述:输入数据源的描述
IP:输入IP以连接到HIVE
端口:连接到HIVE的输入端口
用户名:设置用户名以连接到HIVE
密码:设置密码以连接到HIVE
数据库名称:输入连接到HIVE的数据库的名称
Jdbc连接参数:HIVE连接的参数设置,以JSON格式填写
.使用Hive Server HA Zookeeper模式连接
注意:如果启用了kerberos,则需要填写Principal
创建和编辑Spark数据源
数据源:选择Spark
数据源名称:输入数据源的名称
描述:输入数据源的描述
IP:输入IP以连接到Spark
端口:连接Spark的输入端口
用户名:设置用户名以连接Spark
密码:设置密码以连接到Spark
数据库名称:输入连接到Spark的数据库的名称
Jdbc连接参数:Spark连接的参数设置,以JSON形式填写
注意:如果使用kerberos如果已启用Kerberos,则需要填写 Principal
上传资源文件和udf函数,所有上传的文件和资源都将存储在hdfs上,因此需要以下配置项:
yarn.resourcemanager.ha.rm.ids和yarn.application.status.address只需要配置一个地址,而另一个地址为空。
您需要将Hadoop集群的conf目录中的core-site.xml和hdfs-site.xml复制到dolphinscheduler项目的conf目录中,然后重新启动api-server服务。
它管理着各种资源文件,包括创建基本的txt / log / sh / conf文件,上传jar包和其他类型的文件,编辑,下载,删除和其他操作。
文件格式支持以下类型:txt,log,sh,conf,cfg,py,java,sql,xml,hql
上载文件:单击上载按钮上载,将文件拖到上载区域,文件名将自动完成上载的文件名。
对于可见文件类型,单击文件名以查看文件详细信息
您可以通过单击文件详细信息右上角的下载按钮来下载文件,或者通过在文件列表之后的下载按钮下下载文件来进行下载。
文件列表->单击删除按钮以删除指定的文件
资源管理和文件管理功能相似。区别在于资源管理是上载的UDF功能,而文件管理是上载用户程序,脚本和配置文件。
与上传文件相同。
单击“创建UDF函数”,输入udf函数的参数,选择UDF资源,然后单击“提交”以创建udf函数。
当前仅支持HIVE的临时udf功能
UDF函数名称:输入UDF函数时的名称
软件包名称:输入UDF函数的完整路径
参数:用于注释功能的输入参数
数据库名称:用于创建永久UDF函数的保留字段
UDF资源:设置与创建的UDF相对应的资源文件
该安全性具有队列管理,租户管理,用户管理,警告组管理,工作者组管理器,令牌管理等功能。它还可以授权资源,数据源,项目等。
管理员登录名,默认用户名密码:admin / dolphinscheduler
队列用于执行spark,mapreduce和其他程序,这些程序需要使用“队列”参数。
“安全性”->“队列管理”->“创建队列”
租户对应于Linux帐户,工作服务器使用该帐户提交作业。如果Linux没有该用户,则工作人员将在执行任务时创建帐户。
租户代码:租户代码是Linux上唯一不能重复的帐户。
用户类型是普通用户和管理员用户。
* Administrators have **authorization and user management** privileges, and
no privileges to **create project and process-defined operations**.
* Ordinary users can **create projects and create, edit, and execute
process definitions**.
* Note: **If the user switches the tenant, all resources under the tenant
will be copied to the switched new tenant.**
警报组是启动时设置的参数。过程完成后,过程状态和其他信息将通过邮件发送到警报组。
新建和编辑警告小组
工作组为任务在指定的工作程序上运行提供了一种机制。管理员创建工作组,可以在任务节点和操作参数中指定这些工作组。如果指定的分组被删除或未指定分组,则该任务将在任何工作线程上运行。
一个工作组中的多个IP地址(不能写别名,用英文逗号隔开
由于后端接口具有登录检查和令牌管理,因此它提供了一种通过调用接口来操作系统的方法。
授予权限包括项目权限,资源权限,数据源权限,UDF功能权限。
管理员可以授权非普通用户创建的项目,资源,数据源和UDF功能。由于项目,资源,数据源和UDF功能都以相同的方式授权,因此以项目授权为例。
注意:对于用户自己创建的项目,用户拥有所有权限。项目列表和所选项目的列表将不被反映
.单击指定人员的授权按钮,如下所示:
.选择项目按钮以授权项目
服务管理主要是监视和显示系统中每个服务的健康状态和基本信息。
主要有关master的信息。
主要是有关工人的信息。
动物园管理员监视器
主要是Zookpeeper中每个工人和主人的配置信息。
主要是DB的健康状况
要执行的命令:t_ds_mand表上的统计信息
无法执行的命令数:t_ds_error_mand表上的统计信息
要运行的任务数:Zookeeper中task_queue数据的统计信息
要杀死的任务数:Zookeeper中的task_kill统计
任务节点类型和参数设置
当工作程序执行时,shell节点会生成一个临时的shell脚本,该脚本由与租户同名的Linux用户执行。
将工具栏中的任务节点拖到面板上,然后双击任务节点,如下所示:
节点名称:流程定义中的节点名称是唯一的
运行标志:确定是否可以正确调度节点,如果不需要执行该节点,则可以打开“禁止执行”开关。
描述:描述节点的功能
重试失败次数:任务提交失败次数,支持下拉列表和手动填充次数
失败重试间隔:无法重新提交任务,支持下拉菜单和手动填充的任务之间的间隔
脚本:用户开发的SHELL程序
资源:需要在脚本中调用的资源文件列表
自定义参数:SHELL的用户定义参数用$ {variables}替换脚本的内容
SUB_PROCESS
子流程节点将执行外部工作流程定义作为任务节点。
将工具栏中的任务节点拖到面板上,然后双击任务节点,如下所示:
节点名称:流程定义中的节点名称是唯一的
运行标志:确定节点是否已正确调度
描述:描述节点的功能
子节点:选择了所选子流程的流程定义,并且可以通过在右上角输入子节点来跳转到所选子流程的流程定义。
从属节点是从属检查节点。例如,进程A昨天依赖于进程B的成功执行,而从属节点昨天检查进程B是否具有成功执行的实例。
将工具栏中的ask节点拖到面板上,然后双击任务节点,如下所示:
从属节点提供逻辑判断功能,例如检查昨天的B进程是否成功或C进程是否成功执行。
例如,过程A是每周任务,过程B和C是日常任务。任务A要求上周的每一天都成功执行任务B和C,如图所示:
如果每周A还需要在星期二成功实施:
该过程根据所选的数据源执行。
将工具栏中的任务节点拖到面板上,然后双击任务节点,如下所示:
数据源:存储过程的数据源类型支持MySQL和POSTGRESQL,并选择相应的数据源。
方法:存储过程的方法名称
定制参数:存储过程的定制参数类型支持IN和OUT,数据类型支持九种数据类型:VARCHAR,INTEGER,LONG,FLOAT,DOUBLE,DATE,TIME,TIMESTAMP和BOOLEAN。
将工具栏中的任务节点拖到面板上。
执行非查询SQL功能
执行查询SQL功能,您可以选择以表格和附件的形式将邮件发送给指定的收件人。
数据源:选择相应的数据源
sql类型:支持查询和非查询,查询是选择类型查询,有返回的结果集,可以指定邮件通知为表格,附件或表格附件三个模板。非查询不是由结果集返回的,而是用于更新,删除,插入三种类型的操作的
sql参数:输入参数格式为key = value; key = value ...
sql语句:SQL语句
UDF函数:对于HIVE类型的数据源,您可以参考在资源中心中创建的UDF函数,其他类型的数据源暂时不支持UDF函数。
自定义参数:SQL任务类型和存储过程是自定义参数顺序以设置方法的值。自定义参数类型和数据类型与存储过程任务类型相同。不同之处在于,SQL任务类型的自定义参数替换了SQL语句中的$
{variable}。
Pre语句:Pre-sql在sql语句之前执行
Post语句:在sql语句之后执行Post-sql
通过SPARK节点,可以直接执行SPARK程序。对于spark节点,工作者将使用spark-submit模式提交任务。
将工具栏中的 任务节点拖到面板上,然后双击任务节点,如下所示:
程序类型:支持JAVA,Scala和Python
主要功能的类别:Main Class的完整路径,Spark程序的入口
主jar包:这是Spark的jar包
部署:支持三种模式:纱线群集,纱线客户端和本地
驱动程序内核编号:可以设置驱动程序内核编号和内存编号
执行程序编号:可以设置执行程序编号,执行程序内存编号和执行程序内核编号
命令行参数:设置Spark程序的输入参数以支持替换自定义参数变量。
其他参数:支持-jar,-文件,-存档,-conf格式
资源:如果在其他参数中引用了资源文件,则需要选择指定的资源。
自定义参数:MR区域中的用户定义参数,它们用$ {variables}替换脚本中的内容
注意:JAVA和Scala仅用于标识,没有区别。如果它是由Python开发的Spark,则main函数没有类,其他所有东西都是相同的。
MapReduce(MR
使用MR节点,可以直接执行MR程序。对于Mr节点,worker使用以下命令提交任务hadoop jar
将工具栏中的任务节点拖到面板上,然后双击任务节点,如下所示:
主要功能的类别:MR程序条目的完整路径主要类别
程序类型:选择JAVA语言
主罐包装:MR罐包装
命令行参数:设置MR程序的输入参数以支持替换自定义参数变量
其他参数:支持-D,-文件,-libjars,-档案格式
资源:如果在其他参数中引用了资源文件,则需要选择指定的资源。
自定义参数:MR区域中的用户定义参数,它们用$ {variables}替换脚本中的内容
Python程序
程序类型:选择Python语言
主jar包:运行MR的Python jar包
其他参数:支持-D,-映射器,-归约器,-输入-输出格式,可以在其中设置用户定义的参数,例如:
映射器“ mapper.py ”-文件mapper.py-reducer reducer.py-文件reducer.py-input /
journey / words.txt-output / journey / out / mr / $ {current TimeMillis}
其中,映射器。py 之后-映射器是两个参数,第一个参数是映射器。py,第二个参数是。
资源:如果在其他参数中引用了资源文件,则需要选择指定的资源。
自定义参数:MR区域中的用户定义参数,它们用$ {variables}替换脚本中的内容
使用Python节点,可以直接执行Python脚本。对于Python节点,worker将python **用来提交任务。
将工具栏中的任务节点拖到面板上,然后双击任务节点,如下所示:
脚本:用户开发的Python程序
资源:需要在脚本中调用的资源文件的列表
自定义参数:属于Python的用户定义参数,可将脚本中的内容替换为$ {variables}
$ {system.biz.date}例行调度实例的计时时间是前一天,格式为yyyyyMMdd。补充数据时,日期+
$ {system.biz.curdate}每日排程示例的计时时间,格式为yyyyyMMdd,补充数据时,日期+
$ {system.datetime}每日调度示例的计时时间,格式为yyyyyMMddHmmss,补充数据时,日期+
支持代码以自定义变量名,声明:$ {variable name}。它可以引用“系统参数”或指定“常量”。
当我们将此基准变量定义为[...]时,[yyyyMMddHHmmss]可以任意分解和组合,例如:[yyyyMMdd],$ [HHmmss],$
[yyyy-MM-dd]等。
N年后:$ [add_months(yyyyyyMMdd, * N]
前N年:$ [add_months(yyyyyyMMdd,- * N]
之后的N个月:$ [add_months(yyyyyMMdd,N]
前N个月:$ [add_months(yyyyyyMMdd,-N]
N周后:$ [yyyyyyMMdd + * N]
前N周:$ [yyyyyMMdd- * N]
第二天:$ [yyyyyyMMdd + N]
前天:$ [yyyyyMMdd-N]
N晚后:$ [HHmmss + N / ]
前N小时:$ [HHmmss-N / ]
N分钟后:$ [HHmmss + N / /]
前N分钟:$ [HHmmss-N / /]
用户定义的参数分为全局参数和局部参数。全局参数是保存流程定义和流程实例时传递的全局参数。在整个过程中,全局参数可以由任何任务节点的局部参数引用。
global_bizdate是全局参数,是指系统参数。
在任务中,local_param_bizdate由$
{global_bizdate}引用脚本的全局参数,变量local_param_bizdate的值可以由$
{local_param_bizdate}引用,或者local_param_bizdate的值可以由JDBC直接设置。
问:这个项目叫什么名字?
答:在.版之前,项目名称称为EasyScheduler,在.版之前,其名称称为DolphinScheduler。
问:DolphinScheduler服务介绍和建议的运行内存
答:DolphinScheduler包含个服务,MasterServer,WorkerServer,ApiServer,AlertServer,LoggerServer和UI。
问:系统支持哪些邮箱?
答:支持大多数邮箱,支持qq,,outlook,阿里云等。支持TLS和SSL协议,可以在alert.properties中配置
问:常见的系统变量时间参数是什么,如何使用?
答:请参考系统手册中的“系统参数”
问:pip install kazoo此安装出现错误。是否需要安装?
答:这是Zookeeper需要使用的python连接,用于删除Zookeeper中的主节点/工作节点临时节点信息。因此,如果您是首次安装,则可以忽略该错误。在..版之后,不再需要kazoo,我们使用程序来替换kazoo完成的操作
问:如何指定机器运行任务
答:.版及之前版本,请使用管理员创建工作组,在流程定义启动时指定工作组,或在任务节点上指定工作组。如果未指定,则使用默认值,默认值是选择集群中所有工作程序之一以用于任务提交和执行。
在.版中,您可以为工作人员设置工作组
问:任务的优先级
答:我们也支持流程和任务的优先级。优先级我们有最高,最高,中等,最低和最低五个级别。您可以在不同流程实例之间设置优先级,也可以在同一流程实例中设置不同任务实例的优先级。有关详细信息,请参阅体系结构设计中的任务优先级设计。
问:dolphinscheduler-grpc给出了错误
答:在根目录中执行:mvn -U clean package assembly:assembly -Dmaven.test.skip =
true,然后刷新整个项目。.版不使用grpc,我们直接使用ty
问:DolphinScheduler是否支持在Windows上运行?
答:从理论上讲,只有Worker才需要在Linux上运行。其他服务可以在Windows上正常运行。但是仍然建议在Linux上进行部署。
问:UI会在Linux中编译node-sass提示符:错误:EAESS:权限被拒绝,mkdir xxxx
答:分别安装npm install node-sass --unsafe-perm,然后再安装npm
问:UI无法正常登录。
答:,如果是节点启动,请检查dolphinscheduler-ui下的.env API_BASE配置是否为Api服务器服务地址。
,如果是通过install-dolphinscheduler-ui.sh启动并安装的nginx
,请检查/etc/nginx/conf.d/dolphinscheduler.conf中的proxy_pass配置是否为Api服务器服务地址
,如果以上配置正确,请检查Api Server服务是否正常,
卷曲http://..xx.xx: / dolphinscheduler / users /
get-user-info,检查Api服务器日志,
如果提示.dolphinscheduler.api.interceptor.LoginHandlerInterceptor:[]-会话信息为空,则表明Api服务器服务正常。
,如果上面没有问题,你需要检查是否server.context路径和server.port配置在application.properties是正确的
问:手动启动或计划了流程定义后,没有生成流程实例。
答:,首先通过jps检查MasterServer服务是否存在,或者从服务监控中直接检查zk中是否存在主服务。
,如果有主服务,请检查命令状态统计信息或在t_ds_error_mand中是否添加了新记录。如果已添加,请检查消息字段。
问:任务状态始终处于成功提交状态。
答:,首先通过jps检查WorkerServer服务是否存在,或者从服务监控中直接检查zk中是否存在worker服务。
,如果WorkerServer服务正常,则需要检查MasterServer是否将任务任务放入zk队列中。您需要检查MasterServer日志和zk队列中的任务是否被阻止。
,如果上面没有问题,则需要确定是否指定了Worker组,但由Worker分组的计算机未联机。
问:是否有Docker映像和Dockerfile?
答:提供Docker映像和Dockerfile。
Docker映像地址:https : //hub.docker./r/escheduler/escheduler_images
Dockerfile地址:https :
//github./qiaozhanwei/escheduler_dockerfile/tree/master/docker_escheduler
问:需要注意install.sh中的问题
答:,如果替换变量包含特殊字符,请使用传输字符进行传输
``,installPath =“ / data_T /
dolphinscheduler'',此目录不能与单击一次当前安装的install.sh目录相同。
,deployUser =“ dolphinscheduler”,部署用户必须具有sudo特权,因为工作进程是由sudo -u tenant sh
xxx.mand执行的
,monitorServerState =“
false'',是否启动服务监控脚本,默认为不启动服务监控脚本。如果启动了服务监视脚本,则每分钟监视一次主服务和辅助服务;如果计算机已关闭,它将自动重新启动。
,hdfsStartupSate =“
false”,是否启用HDFS资源上传功能。默认未启用。如果未启用,则无法使用资源中心。如果启用,则需要在conf / mon / hadoop /
hadoop.properties中配置fs.defaultFS和yarn的配置。如果使用namenode
HA,则需要将core-site.xml和hdfs-site.xml复制到conf根目录。
注意:..x版本不会自动创建hdfs根目录,您需要自己创建它,并且需要以hdfs操作权限部署用户。
问:流程定义和流程实例脱机异常
答:对于..之前的版本,请修改escheduler-api .escheduler.api.quartz软件包下的代码。
public boolean deleteJob(String jobName, String jobGroupName) {
lock.writeLock().lock();
JobKey jobKey = new JobKey(jobName,jobGroupName);
if(scheduler.checkExists(jobKey)){
logger.info("try to delete job, job name: {}, job group name: {},",
jobName, jobGroupName);
return scheduler.deleteJob(jobKey);
return true;
} catch (SchedulerException e) {
logger.error(String.format("delete job : %s failed",jobName), e);
} finally {
lock.writeLock().unlock();
return false;
问:HDFS启动前创建的租户是否可以正常使用资源中心?
答:否。由于未启动HDFS创建的承租人,因此承租人目录不会在HDFS中注册。因此,最后一个资源将报告错误。
问:在多主机和多工人状态下,服务丢失了,如何容错
答:注意: Master监视Master和Worker服务。
,如果Master服务丢失,其他Master将接管挂起的Master的进程并继续监视Worker任务状态。
,若该工人的服务丢失,则主控器将监视该工人的服务是否消失。如果存在Yarn任务,则将重试Kill Karn任务。
有关详细信息,请参见体系结构中的容错设计。
问:主机和工人分配的机器的容错能力
答:..版本仅实现主启动过程的容错能力,而不采用工作程序容错能力。就是说,如果工人吊死了,就不存在主人。此过程将存在问题。我们将在..版中添加Master和Worker启动容错功能,以解决此问题。如果要手动修改此问题,则需要为正在重新启动过程中运行进程且已删除的正在运行的工作程序任务修改正在运行的任务。在重新启动过程中,正在运行的进程被设置为失败状态。然后从发生故障的节点恢复该过程。
问:计时很容易设置为每秒执行一次
答:设置时间时请注意。如果将第一个数字(* * * * *
*?*设置为*,则表示每秒执行一次。我们将在版本..中添加最近计划的时间列表。您可以在在线查看最近次运行时间
问:是否有有效的计时时间范围?
答:是的,如果定时开始时间和结束时间相同,则此定时将无效。如果开始时间和结束时间的结束时间小于当前时间,则很有可能会自动删除该时间。
问:任务依赖项有几种实现方式
答:,DAG之间的任务依赖关系是从DAG分割的零度开始的
,有任务相关节点,可以实现跨进程任务或进程相关,请参考系统手册中的(DEPENDENT节点设计。
注意:不支持跨项目流程或任务依赖性
问:有几种方法可以启动流程定义。
答:,在流程定义列表中,单击开始按钮。
,流程定义列表添加一个计时器,调度启动流程定义。
,在流程定义中查看或编辑DAG页面,在任何任务节点上单击鼠标右键,启动流程定义。
,您可以为流程定义DAG编辑,将某些任务的运行标志设置为禁止运行,当流程定义启动时,将从DAG中删除节点的连接。
问:Python任务设置Python版本
答:,对于..之后的版本,只需要在conf / env /
.dolphinscheduler_env.sh中修改PYTHON_HOME
export PYTHON_HOME=/bin/python
注意:这是PYTHON_HOME,它是python命令的绝对路径,而不是简单的PYTHON_HOME。另请注意,导出PATH时,您需要直接
PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH
,对于..之前的版本,Python任务仅支持系统的Python版本。它不支持指定Python版本。
问:Worker Task将通过sudo -u tenant sh xxx.mand生成一个子进程,杀死时会杀死
答:我们将在..中添加kill任务,并杀死该任务生成的所有各种子进程。
问:如何在DolphinScheduler中使用队列,用户队列和租户队列是什么意思?
答:DolphinScheduler中的队列可以在用户或租户上配置。用户指定的队列的优先级高于租户队列的优先级。例如,要为MR任务指定队列,该队列由mapreduce.job.queuename指定。
注意:使用上述方法指定队列时,MR使用以下方法:
Configuration conf = new Configuration();
GenericOptionsParser optionParser = new GenericOptionsParser(conf,
String[] remainingArgs = optionParser.getRemainingArgs();
如果是Spark任务-队列模式指定队列
问:主人或工人报告以下警报
答:将conf下的master.properties
master.reserved.memory的值更改为较小的值,例如.,或者将worker.properties的worker.reserved.memory的值更改为较小的值,例如.
问:配置单元版本为.. + cdh..,并且错误报告了SQL配置单元任务连接。
.apache.hive
hive-jdbc
.apache.hive
hive-jdbc
问:如何添加工作服务器
答:,创建部署用户和主机的映射,请参考集群部署的.部分
,配置主机映射和ssh访问并修改目录权限。请参考集群部署的.部分
,从已经部署的工作服务器复制部署目录
,转到bin dir,然后启动worker服务器和logger服务器
start worker-server
start logger-server
问:DolphinScheduler发布新版本时,当前版本与最新版本之间的更改,升级方式以及版本号规范时
答:,Apache
Project的发布过程发生在邮件列表中。您可以订阅DolphinScheduler的邮件列表,然后在发布过程中,您会收到发布电子邮件。请按照此介绍来订阅DolphinScheduler的邮件列表。
,发布新版本时,将有发行说明,其中描述了更改日志,也有从旧版本到新版本的升级文档。
,版本号为xyz,当x增加时,代表新架构的版本。当y增加时,表示它与y版本不兼容,需要通过脚本或其他手动处理对其进行升级。当z增加表示错误修复时,升级完全兼容。无需其他处理。仍然存在的问题是..升级与..不兼容,需要升级脚本。
问:即使前端任务失败,后续任务也可以执行
答:启动工作流程时,您可以设置任务失败策略:常规或失败。
问:工作流程模板DAG,工作流程实例,工作任务以及它们之间有什么关系?DAG支持最大并发,这是否意味着可以同时生成并运行个工作流实例?DAG中的任务节点也具有并发号码配置。这是否意味着任务可以与多个线程同时运行?最大数量是吗?
master.properties
Control the max parallel number of master node workflows
master.exec.threads=
Control the max number of parallel tasks in each workflow
master.exec.task.number=
worker.properties
Control the max parallel number of worker node tasks
worker.exec.threads=
问:工人组管理页面没有显示按钮
答:对于..版,我们希望支持ks,而ip总是会更改,因此无法在UI上进行配置,worker可以在worker.properties中配置组名。
问:为什么不将mysql jdbc连接器添加到docker映像中
答:mysql jdbc连接器的许可证与apache v许可证不兼容,因此docker image不能包含它。
问:任务实例提交多个纱线申请时,总会失败
答:此错误已在dev和Requirement / TODO列表中修复。
问:主服务器和辅助服务器运行几天后会异常停止
答:会话超时太短,只有.秒。更改zookeeper.properties中的配置项:
zookeeper.session.timeout=
zookeeper.connection.timeout=
问:开始使用docker-pose默认配置并显示zookeeper错误
答:这个问题在dev-..中已解决。这个[pr](解决了这个错误,简短的更改日志:
. add zookeeper environment variable ZOO_LW_MANDS_WHITELIST in
docker-pose.yml file.
. change the data type of minLatency, avgLatency and maxLatency from int
to float.
问:当数据库延迟并且日志显示任务实例为空时,界面显示某些任务将一直运行
答:此错误描述了问题的详细信息,并且已在..版中解决。
对于..下的版本,针对这种情况的一些提示:
. clear the task queue in zk for path: /dolphinscheduler/task_queue
. change the state of the task to failed( integer value: ).
. run the work flow by recover from failed
问:Zookeeper主机的znode列表IP地址为...,而不是想要的IP eth或eth,并且可能看不到任务日志
, confirm hostname
$hostname
, hostname -i
, edit /etc/hosts,delete hadoop from ... record
$cat /etc/hosts
... localhost
... ds hadoop
, hostname -i
主机名cmd返回服务器主机名,主机名-i返回/ etc /
hosts中配置的所有匹配ip。因此,在删除与...匹配的主机名之后,仅保留内部ip解析,而不是删除所有...解析记录。只要主机名cmd返回/
etc / hosts中配置的正确内部ip,就可以解决此错误。DolphinScheduler使用hostname
-i命令返回的第一条记录。在我看来,DS不应使用主机名-i来获取ip,因为在许多公司中,devops配置了服务器名,我们建议使用在配置文件或znode中配置的ip而不是/
etc / hosts。
问:调度系统设置了第二个频率任务,导致系统崩溃
答:调度系统不支持第二频率任务。
问:编译前端代码(dolphinscheduler-ui显示错误无法下载“
答:,cd dolphinscheduler-ui并删除node_modules目录
sudo rm -rf node_modules
,通过npm.taobao.安装node-sass
sudo npm uninstall node-sass
sudo npm i node-sass
--sass_binary_site=
,如果第二步失败,请参考网址
sudo npm rebuild node-sass
解决此问题后,如果不想每次都下载此节点,则可以设置系统环境变量:SASS_BINARY_PATH =
/xxx/xxx/xxx/xxx.node。
问:当使用mysql作为数据库而不是postgres时如何配置
答:,编辑项目根目录maven配置文件,删除范围测试属性,以便可以加载mysql驱动程序。
mysql-connector-java
${mysql.connector.version}
,编辑application-dao.properties和quzrtz.properties配置文件以使用mysql驱动程序。由于许可证问题,默认为postgresSql驱动程序。
问:shell任务如何运行
答:,执行服务器在哪里?指定一个工作程序来运行任务,您可以在“安全中心”中创建工作程序组,然后可以将该任务发送给特定的工作程序。如果工作组有多个服务器,则哪个服务器实际执行是由调度确定的,并且具有随机性。
,如果是服务器上某个路径的外壳文件,如何指向该路径?服务器外壳文件涉及权限问题,不建议这样做。建议您使用资源中心的存储功能,然后在外壳编辑器中使用资源引用。系统将帮助您将脚本下载到执行目录。如果任务依赖于资源中心文件,则工作人员使用“
hdfs dfs -get”在HDFS中获取资源文件,然后在/ tmp / escheduler / exec /
process中运行任务,安装dolphinscheduler时可以自定义此路径。
,哪个用户执行任务?任务由租户通过“ sudo -u $ {tenant}”运行,租户是linux用户。
问:您在生产环境中建议的最佳部署模式是什么?
答:,如果您没有太多要运行的任务,建议您使用个节点来提高稳定性。并在不同节点上部署Master /
Worker服务器更好。如果只有一个节点,那么您当然只能将它们一起部署!顺便说一句,您需要多少台机器由您的业务决定。DolphinScheduler系统本身不使用太多资源。测试更多,您将找到使用几台机器的正确方法。
问:依赖任务节点
答:,DEPENDENT任务节点实际上没有脚本,它用于配置数据周期相关逻辑,然后添加任务节点以实现任务周期相关。
问:如何更改主站的启动端口
答:,修改application_master.properties,例如:server.port = 。
问:计划任务不能在线
答:,我们可以成功创建计划任务并将一条记录添加到t_scheduler_schedules表中,但是当我单击联机时,首页无反应,并将表t_scheduler_schedules锁定,并测试了将表t_scheduler_schedules中的字段release_state值设置为,并且任务在线显示州。对于.以上的DS版本,表名称为t_ds_schedules,其他版本表名称为t_scheduler_schedules。
问:swagger ui的地址是什么
答:,对于.+版本,是http:// apiServerIp:apiServerPort / dolphinscheduler /
doc.html,其他版本是http:// apiServerIp:apiServerPort / escheduler / doc.html。
问:前端安装程序包缺少文件
答:,用户更改了配置api服务器的配置文件和项目,从而导致了问题。恢复到默认值后问题解决。
问:上传相对较大的文件是否被阻止
答:,编辑ngnix配置文件,编辑上传最大大小client_max_body_size m。
,Google Chrome的版本较旧,并且浏览器的最新版本已更新。
问:创建一个火花数据源,单击“测试连接”,系统将退回到登录页面
答:,编辑nginx的配置文件/etc/nginx/conf.d/escheduler.conf
proxy_connect_timeout s;
proxy_read_timeout s;
proxy_send_timeout s;
问:欢迎订阅DolphinScheduler开发邮件列表
答:在使用DolphinScheduler的过程中,如果您有任何疑问或想法,建议,则可以通过Apache邮件列表参与DolphinScheduler社区的建设。发送订阅电子邮件也非常简单,步骤如下:
,将包含您自己的电子邮件地址,主题和内容的电子邮件发送至。
,接收确认邮件并回复。完成第步后,您将收到来自的确认电子邮件(如果未收到,请确认该电子邮件是否自动分类为垃圾邮件,促销电子邮件,订阅电子邮件等。然后直接回复电子邮件,或单击电子邮件中的链接快速回复,主题和内容是任意的。
,收到欢迎电子邮件。完成上述步骤后,您将收到主题为WELE的欢迎电子邮件至,并且您已成功订阅Apache
DolphinScheduler(正在孵化邮件列表。
问:工作流依赖性
答:,目前根据上个月底的自然天进行判断:判断时间为工作流A的“ start_time / scheduler_time”,介于“
-- ::”和“
--”之间::'。上个月:判断从每月日到该月底每天都有一个A实例完成。上周:上周天有完成的A实例。前两天:从昨天和前天来看,必须有一个完整的实例,持续两天。
问:DS后端接口文档
答:,http://...: / dolphinscheduler / doc.html?language =