DolphinScheduler任务调度
最近在学习大数据的相关知识,将其中用到的工具记录下来。
1. DolphinScheduler简介
DolphinScheduler官方地址
Apache DolphinScheduler 是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
DolphinScheduler是2019年中国易观公司开源的一个调度系统,在美国时间2019年8月29号,易观开源的分布式任务调度引擎DolphinScheduler(原EasyScheduler)正式通过顶级开源组织Apache基金会的投票决议,根据Apache基金会邮件列表显示,在包含11个约束性投票(binding votes)和2个无约束性投票(non-binding votes)的投票全部持赞同意见,无弃权票和反对票,投票顺利通过,这样便以全票通过的优秀表现正式成为了Apache孵化器项目!
2. DolphinScheduler特点
DolphinScheduler提供了许多易于使用的功能,可加快数据ETL工作开发流程的效率。其主要特点如下:
- 通过拖拽以DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态;
- 支持丰富的任务类型;
- 支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作;
- 支持工作流全局参数及节点自定义参数设置;
- 支持集群HA,通过 Zookeeper实现 Master 集群和 Worker 集群去中心化;
- 支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计;
- 支持补数,并行或串行回填数据。
3. DolphinScheduler安装
3.1 依赖软件
- MySQL (5.7系列) :需要JDBC Driver 5.1+;
- JDK (1.8+) : 必装,请安装好后在/etc/profile下配置 JAVA_HOME 及 PATH 变量;
- ZooKeeper (3.4.6+) :必装;
- Hadoop (2.6+):选装, 如果需要用到资源上传功能,针对单机可以选择本地文件目录作为上传文件夹(此操作不需要部署Hadoop);当然也可以选择上传到Hadoop集群上。
注意: DolphinScheduler本身不依赖Hadoop、Hive、Spark,仅是会调用他们的Client,用于对应任务的运行。
3.2 下载二进制tar.gz包
下载最新版本的后端安装包至服务器部署目录,比如创建 /export/server 做为安装部署目录,下载地址:选择相应版本下载后上传tar包到该目录中,并进行解压。
# 创建部署目录,部署目录不要创建在/root、/home等高权限目录,如创建目录/export/server/
mkdir -p /export/server/;
mkdir -p /export/software/;
# 将dolphinscheduler的.bin.tar.gz上传到目录/export/software/ 后解压
# 解压
tar -zxvf /export/software/apache-dolphinscheduler-incubating-1.3.5-dolphinscheduler-bin.tar.gz -C /export/server/;
cd /export/server/
mv apache-dolphinscheduler-incubating-1.3.5-dolphinscheduler-bin dolphinscheduler;
3.3 数据库初始化
进入数据库,默认数据库是PostgreSQL,如选择MySQL的话,后续需要添加mysql-connector-java驱动包到DolphinScheduler的lib目录下。
mysql -uroot -p
# 执行数据库初始化命令,设置访问账号和密码。
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'root'@'%' IDENTIFIED BY 'XXXXXX';
mysql> flush privileges