目录
一、概述
在大数据场景中,任务调度器是必不可少的工具,用于协调多个数据处理任务的执行顺序、调度时间和依赖关系。DolphinScheduler 是 Apache 开源的一款分布式、大数据任务调度系统,致力于解决复杂的任务依赖管理,并提供简单易用的可视化操作界面。
本文将介绍 DolphinScheduler 的主要特性、架构以及使用场景。
二、主要特性
- 分布式任务调度: DolphinScheduler 支持分布式任务调度,具有良好的扩展性,能够处理大量任务。
- DAG 任务编排: 支持通过有向无环图(DAG)进行任务依赖管理,保证任务按照预定依赖关系正确执行。
- 可视化操作: 提供友好的 Web 可视化界面,用户可以方便地创建、管理和监控任务。
- 支持多种任务类型: 包括 Shell 脚本、Spark、Flink、MapReduce、Python 等任务类型,满足大数据处理中的各种需求。
- 故障恢复: 具备自动故障恢复功能,调度器能够在任务失败后自动重试或通过报警通知相关人员。
- 报警机制: 支持任务的邮件、短信等报警功能,确保任务出现问题时能够及时处理。
三、DolphinScheduler 架构
DolphinScheduler 主要由以下几个组件组成:
- Master Server: 负责接收并处理任务调度请求,执行任务的调度逻辑,分配 Worker 进行实际任务执行。
- Worker Server: 实际负责执行调度的任务,可能包括提交 Spark、Flink 等大数据处理任务。
- Alert Server: 负责处理任务调度过程中产生的报警信息。
- API Server: 提供 RESTful 接口,供前端 Web UI 或第三方系统调用。
- 数据库: 负责存储任务的元数据、调度日志等信息。
整个系统通过 Master 和 Worker 进行分布式部署,可以水平扩展,提升任务的处理能力。
四、安装与配置
1. 环境准备
- 操作系统:Linux(推荐 CentOS)
- JDK:1.8 及以上版本
- 数据库:MySQL(5.7 及以上版本)
- ZooKeeper:3.4.6 及以上版本
- Hadoop、Spark 等大数据框架
2. 安装步骤[单机模式]
1. 下载并解压 DolphinScheduler 安装包:
tar -zxvf apache-dolphinscheduler-3.1.8-bin.tar.gz -C /opt/installs/
2. 将mysql的驱动包拷贝到所有的服务的jars目录下:
cp mysql-connector-java-8.0.26.jar ./standalone-server/libs/standalone-server/
3. 创建表dolphinscheduler以及新用户:
-- 建表
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
-- 创建新用户
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
FLUSH PRIVILEGES;
4. 在Linux黑窗口运行:
export DATABASE=mysql
export SPRING_PROFILES_ACTIVE=dolphinscheduler
export SPRING_DATASOURCE_URL="jdbc:mysql://bigdata01:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true"
export SPRING_DATASOURCE_USERNAME=dolphinscheduler
export SPRING_DATASOURCE_PASSWORD=123456
-- 初始化数据库
bash tools/bin/upgrade-schema.sh
5. 修改配置文件(apache-dolphinscheduler-3.1.8-bin/standalone-server/conf)
-- 在 DolphinScheduler 的安装目录下找到 conf/application.yaml 文件
-- 将其中关于数据库连接的部分修改为指向你的 MySQL 实例,包括用户名、密码、数据库名等信息。以下是修改后的示例:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://bigdata01:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: dolphinscheduler
password: 123456
6. 启动服务
-- 启动 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
-- 停止 Standalone Server 服务
bash ./bin/dolphinscheduler-daemon.sh stop standalone-server
-- 查看 Standalone Server 状态
bash ./bin/dolphinscheduler-daemon.sh status standalone-server
启动后,打开浏览器访问 http://bigdata01:12345/dolphinscheduler
进入 DolphinScheduler 管理界面。
五、使用 DolphinScheduler 创建任务
- 创建工作流: 登录 DolphinScheduler 后,可以通过可视化界面创建任务工作流,并为每个任务设置依赖关系。
- 配置任务类型: 根据需求选择不同的任务类型,如 Shell 脚本任务、Spark 提交任务、数据同步任务等。
- 设置调度周期: 可以为任务设置调度周期,如每天定时运行,或者按小时、分钟等粒度定时执行。
- 监控任务状态: DolphinScheduler 提供实时监控界面,可以查看任务的执行情况、成功或失败状态,支持日志查看和任务的重试机制。
六、应用场景
DolphinScheduler 的广泛应用场景包括:
- 大数据处理流程调度: 在复杂的数据处理链路中,DolphinScheduler 可以调度 Hadoop、Spark、Flink 等大数据任务,管理各任务间的依赖关系。
- 数据同步任务: 利用 DolphinScheduler 定时同步不同数据源之间的数据,如 MySQL、HDFS、Hive 之间的数据传输。
- ETL 数据清洗任务: 可以结合 Sqoop、Flume 等工具完成数据的抽取、清洗和加载工作。
七、总结
DolphinScheduler 作为 Apache 旗下的开源项目,凭借其强大的任务调度能力、友好的可视化操作界面以及分布式架构,在大数据任务调度领域有着广泛的应用。它能够简化任务管理、提高调度效率,是企业级大数据处理的利器。