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

Posted JF Coder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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有奖征稿活动”


以上是关于Apache DolphinScheduler征稿-DolphinScheduler的入门级教程及案例的主要内容,如果未能解决你的问题,请参考以下文章

Apache DolphinScheduler 征稿 — 极速入门Apache DolphinScheduler分布式调度系统

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

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

Apache DolphinScheduler 征稿 —开源大数据调度器Apache DolphinScheduler安装维护与实践

Apache DolphinScheduler征稿--大数据神器来了

Apache DolphinScheduler 诞生记