Apache DolphinScheduler征稿-DolphinScheduler的入门级教程及案例

本文正在参与“拥开源-Apache DolphinScheduler有奖征稿活动”


什么是DolphinScheduler

分布式易扩展的可视化DAG工作流任务调度系统

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

  • DolphinScheduler 由 5 个服务组成,MasterServer、WorkerServer、ApiServer、AlertServer、LoggerServer 和 UI。

在这里插入图片描述

  • MasterServer

MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG
任务切分、任务提交监控,并同时监听其它MasterServer和WorkerServer的健康状态。
MasterServer服务启动时向Zookeeper注册临时节点,通过监听Zookeeper临时节点变化来进行容错处理。

  • WorkerServer

WorkerServer也采用分布式无中心设计理念,WorkerServer主要负责任务的执行和提供日志服务。WorkerServer服务启动时向Zookeeper注册临时节点,并维持心跳。

  • ZooKeeper

ZooKeeper服务,系统中的MasterServer和WorkerServer节点都通过ZooKeeper来进行集群管理和容错。另外系统还基于ZooKeeper进行事件监听和分布式锁。
我们也曾经基于Redis实现过队列,不过我们希望EasyScheduler依赖到的组件尽量地少,所以最后还是去掉了Redis实现。

  • Task Queue

提供任务队列的操作,目前队列也是基于Zookeeper来实现。由于队列中存的信息较少,不必担心队列里数据过多的情况,实际上我们压测过百万级数据存队列,对系统稳定性和性能没影响。

  • API

API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。

DolphinScheduler对比其他任务调度系统

DolphinScheduler的优势是什么?

在这里插入图片描述

有Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinScheduler ?
在这里插入图片描述
还是有很多大型互联网公司在使用的(联通,奇安信等),社区还是非常活跃的,属于Apache的顶级开源项目

简单使用案例

官方教程

使用Docker容器构建
  1. 请下载源码包 apache-dolphinscheduler-1.3.6-src.tar.gz
  2. 拉取镜像并启动服务
$ tar -zxvf apache-dolphinscheduler-1.3.6-src.tar.gz
$ cd apache-dolphinscheduler-1.3.6-src/docker/docker-swarm
$ docker pull apache/dolphinscheduler:latest
$ docker-compose up -d

将会下载postgresql和zookeeper镜像,因为我们指定已存在的;

Status: Downloaded newer image for bitnami/postgresql:latest
Pulling dolphinscheduler-zookeeper (bitnami/zookeeper:latest)...
latest: Pulling from bitnami/zookeeper

PostgreSQL (用户 root, 密码 root, 数据库 dolphinscheduler) 和 ZooKeeper服务将会默认启动

  1. 登录系统
    本地地址为 http://127.0.0.1:12345/dolphinscheduler)
    默认的用户是admin,默认的密码是dolphinscheduler123
    在这里插入图片描述
  • 指定已存在的 PostgreSQL 和 ZooKeeper 服务
  1. 运行一个 DolphinScheduler 实例
$ docker run -d --name dolphinscheduler \
-e DATABASE_HOST="192.168.x.x" -e DATABASE_PORT="5432" -e DATABASE_DATABASE="dolphinscheduler" \
-e DATABASE_USERNAME="test" -e DATABASE_PASSWORD="test" \
-e ZOOKEEPER_QUORUM="192.168.x.x:2181" \
-p 12345:12345 \ apache/dolphinscheduler:latest all

注:数据库用户 test 和密码 test 需要替换为实际的 PostgreSQL 用户和密码,192.168.x.x 需要替换为PostgreSQL 和 ZooKeeper 的主机 IP

在容器启动时,会自动启动以下服务:

MasterServer         ----- master服务
WorkerServer         ----- worker服务
LoggerServer         ----- logger服务
ApiApplicationServer ----- api服务
AlertServer          ----- alert服务

本文正在参与“拥开源-Apache DolphinScheduler有奖征稿活动”


评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JF Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值