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容器构建
- 请下载源码包 apache-dolphinscheduler-1.3.6-src.tar.gz
- 拉取镜像并启动服务
$ 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服务将会默认启动
- 登录系统
本地地址为 http://127.0.0.1:12345/dolphinscheduler)
默认的用户是admin,默认的密码是dolphinscheduler123
- 指定已存在的 PostgreSQL 和 ZooKeeper 服务
- 运行一个 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安装维护与实践