网站做两个月百度没有录取,wordpress 插件文件夹,安徽新站优化,同心县建设局网站1、简介 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景#xff0c;提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系#xff0c;并为应…1、简介 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂无法监控任务健康状态的问题。 DolphinScheduler 以 DAGDirected Acyclic GraphDAG流式方式组装任务可以及时监控任务的执行状态支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。
2、系统架构 MasterServer MasterServer采用分布式无中心设计理念MasterServer主要负责 DAG 任务切分、任务提交监控并同时监听其它MasterServer和WorkerServer的健康状态。 MasterServer服务启动时向Zookeeper注册临时节点通过监听Zookeeper临时节点变化来进行容错处理。 MasterServer基于netty提供监听服务。
该服务内主要包含: DistributedQuartz分布式调度组件主要负责定时任务的启停操作当quartz调起任务后Master内部会有线程池具体负责处理任务的后续操作MasterSchedulerService是一个扫描线程定时扫描数据库中的t_ds_command表根据不同的命令类型进行不同的业务操作WorkflowExecuteRunnable主要是负责DAG任务切分、任务提交监控、各种不同事件类型的逻辑处理TaskExecuteRunnable主要负责任务的处理和持久化并生成任务事件提交到工作流的事件队列EventExecuteService主要负责工作流实例的事件队列的轮询StateWheelExecuteThread主要负责工作流和任务超时、任务重试、任务依赖的轮询并生成对应的工作流或任务事件提交到工作流的事件队列FailoverExecuteThread主要负责Master容错和Worker容错的相关逻辑
WorkerServer WorkerServer也采用分布式无中心设计理念WorkerServer主要负责任务的执行和提供日志服务。 WorkerServer服务启动时向Zookeeper注册临时节点并维持心跳。 WorkerServer基于netty提供监听服务。
该服务包含 WorkerManagerThread主要负责任务队列的提交不断从任务队列中领取任务提交到线程池处理TaskExecuteThread主要负责任务执行的流程根据不同的任务类型进行任务的实际处理RetryReportTaskStatusThread主要负责定时轮询向Master汇报任务的状态直到Master回复状态的ack避免任务状态丢失
ZooKeeper
ZooKeeper服务系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错。另外系统还基于ZooKeeper进行事件监听和分布式锁。 我们也曾经基于Redis实现过队列不过我们希望DolphinScheduler依赖到的组件尽量地少所以最后还是去掉了Redis实现。
AlertServer
提供告警服务通过告警插件的方式实现丰富的告警手段。
ApiServer
API接口层主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
UI
系统的前端页面提供系统的各种可视化操作界面。
3、快速体验
本次以单机为例
前置准备 需要安装JDK1.8,并配置JAVA_HOME环境变量
二进制包下载 下载地址:DolphinScheduler | 下载 (apache.org)
解压
tar -zxvf apache-dolphinscheduler-3.2.0-bin.tar.gz
启动
#启动服务
./bin/dolphinscheduler-daemon.sh start standalone-server#停止服务
./bin/dolphinscheduler-daemon.sh stop standalone-server
登陆系统UI 登陆地址 端口12345 4、切换元数据库
单机版dolphinscheduler是采用H2存储元数据每次重启服务都会清空数据所以我们需要切换到MySQL数据库解决这个问题。
首先在MySQL数据库建一个dolphinscheduler数据库
然后编辑dolphinscheduler_env.sh文件
vim ./bin/env/dolphinscheduler_env.sh
export DATABASEmysql
export SPRING_PROFILES_ACTIVE${DATABASE}
export SPRING_DATASOURCE_URLjdbc:mysql://127.0.0.1:3306/ds3?useUnicodetruecharacterEncodingUTF-8useSSLfalse
export SPRING_DATASOURCE_USERNAME用户
export SPRING_DATASOURCE_PASSWORD密码
初始化数据库
sh tools/bin/upgrade-schema.sh