在大数据开发、数据同步、定时任务调度场景中,Apache DolphinScheduler(海豚调度)凭借轻量、稳定、可视化强、易运维的优势,成为主流开源工作流调度工具,替代传统 Crontab、复杂脚本调度。
很多新手刚接触时,会卡在环境安装、不知道默认账号密码、不会搭建基础工作流。今天这篇博文,手把手带大家完成 DolphinScheduler 单机完整版安装+默认密码查询+零基础实操使用,全程无坑、直接落地,适合学习、测试、小型生产环境使用。
一、前置环境准备(必看)
DolphinScheduler 运行依赖基础环境,安装前务必满足以下条件,避免启动报错:
- 操作系统:Linux(CentOS7+/Ubuntu18+)
- JDK版本:JDK8 / JDK11(主流稳定版本,推荐JDK8)
- 数据库:MySQL5.7+ / MySQL8.0(核心依赖,存储调度任务、用户、工作流数据)
- 基础工具:wget、tar、bash 环境(服务器默认自带)
- 端口开放:服务器放行 12345 端口(DolphinScheduler Web UI 核心端口)
环境校验命令:java -version、mysql -V,确认环境正常再进行安装。
二、DolphinScheduler 单机快速安装教程
本文采用官方二进制包单机部署,无需编译、步骤极简,适合绝大多数测试和小型业务场景,规避集群部署的复杂配置。
1. 数据库初始化(关键步骤)
DolphinScheduler 所有任务数据、配置信息均存储在 MySQL 中,需提前创建专属数据库并授权:
# 登录MySQL
mysql -uroot -p
# 创建数据库(字符集必须为utf8mb4,避免乱码)
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
# 授权用户(可自定义账号密码,后续配置文件需对应)
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'%' IDENTIFIED BY 'Ds@123456';
# 刷新权限
FLUSH PRIVILEGES;
exit;
2. 下载并解压安装包
推荐下载官方稳定版,本文以最新稳定版为例,可按需替换版本号:
# 进入安装目录
cd /usr/local
# 下载官方二进制安装包
wget https://archive.apache.org/dist/dolphinscheduler/3.2.1/apache-dolphinscheduler-3.2.1-bin.tar.gz
# 解压安装包
tar -zxvf apache-dolphinscheduler-3.2.1-bin.tar.gz
# 重命名目录(方便后续操作)
mv apache-dolphinscheduler-3.2.1-bin dolphinscheduler
3. 配置数据库连接
修改核心配置文件,关联刚刚创建的 MySQL 数据库,替换数据库地址、账号、密码:
# 进入配置目录
cd /usr/local/dolphinscheduler/conf
# 编辑数据库配置文件
vim datasource.properties
修改以下核心参数(其余配置默认即可):
spring.datasource.url=jdbc:mysql://localhost:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
spring.datasource.username=ds_user
spring.datasource.password=Ds@123456
保存退出(ESC+:wq),数据库配置完成。
4. 初始化数据库表结构
DolphinScheduler 自带建表脚本,一键初始化所有数据表,无需手动创建:
cd /usr/local/dolphinscheduler
# 执行数据库初始化脚本
sh bin/init-db.sh
执行无报错、终端提示初始化完成,即为成功。
5. 启动/停止服务
单机部署一键启停所有服务(Master、Worker、API、UI 服务),命令极简:
# 启动所有服务
sh bin/start-all.sh
# 停止所有服务
sh bin/stop-all.sh
启动耗时 1-3 分钟,可通过 jps 查看进程,出现 Master、Worker、ApiServer 进程即为启动成功。
三、DolphinScheduler 默认账号密码(全网通用)
这是新手最常问的核心问题!所有官方默认版本(3.x/2.x)通用初始账号密码,无需手动注册:
- 登录地址:http://服务器IP:12345/dolphinscheduler/ui
- 默认用户名:admin
- 默认密码:dolphinscheduler123
💡 重要建议:首次登录后务必修改默认密码!路径:系统设置 -> 用户管理 -> 编辑 admin 用户,避免服务器暴露后被非法访问。
四、DolphinScheduler 零基础快速使用教程
安装登录完成后,带你完成 创建项目-新建工作流-配置定时任务-运行调度 完整实操,快速上手核心功能。
1. 核心概念科普(新手必懂)
- 项目:任务合集,用于分类管理不同业务的调度任务(如数据同步、日志清洗)
- 工作流:多个任务的组合,可配置任务依赖、执行顺序
- 任务节点:支持 Shell、Python、SQL、Spark、Flink 等多种任务类型
- 定时调度:支持 Crontab 表达式,实现秒级、分钟级、每日定时执行
2. 第一步:创建业务项目
- 登录 Web UI 后台,左侧菜单栏点击【项目管理】-【项目列表】
- 点击右上角【创建项目】,填写项目名称、备注(如“测试调度项目”)
- 点击确认,项目创建完成,所有任务均需归属对应项目
3. 第二步:创建工作流与任务
- 进入刚创建的项目,点击【工作流定义】-【创建工作流】
- 进入可视化拖拽页面,左侧选择任务节点,新手优先选择Shell 节点(通用测试任务)
- 拖拽 Shell 节点到画布,双击节点编辑任务:填写任务名称、执行命令(如简单测试命令
echo "dolphinscheduler 调度测试") - 保存节点,点击右上角【保存工作流】,填写工作流名称
4. 第三步:配置定时调度规则
工作流保存后,默认是手动执行,配置定时规则实现自动调度:
- 在工作流定义列表,找到对应工作流,点击【定时】按钮
- 选择调度周期,支持可视化选择(每分钟、每小时、每日),也可手动输入 Crontab 表达式
- 设置生效时间、失效时间,点击确认
- 重点:开启调度状态(默认关闭,需手动启用),否则定时不生效
5. 第四步:手动运行 & 日志查看
- 无需等待定时,可直接点击【运行】手动触发任务
- 执行后进入【工作流实例】,查看正在执行/已完成的任务
- 点击对应实例,可查看每个任务节点的执行日志、执行状态、耗时,方便排查报错
五、常见问题避坑
- 12345 端口无法访问:服务器防火墙/安全组未放行端口,关闭防火墙或放行 12345 端口即可
- 启动后登录报错:数据库配置错误、未执行 init-db.sh 初始化脚本,重新核对配置并初始化数据库
- 定时任务不执行:工作流未开启调度状态、Crontab 表达式配置错误、服务器时间不一致
- 默认密码登录失败:手动修改过密码,可通过数据库 user 表重置 admin 密码
- ResourcesServiceImpl 空指针报错 java.lang.NullPointerException:该报错为DolphinScheduler 3.2.1高频报错,分为**二进制部署**和**Docker部署**两种场景,核心原因是系统资源根目录未配置、目录不存在或无权限,导致读取资源路径为null,触发空指针异常,表现为资源中心打不开、文件上传失败。 【二进制部署解决方案】 1. 手动创建系统资源根目录:
mkdir -p /tmp/dolphinscheduler/resources2. 赋予目录权限:chmod 777 -R /tmp/dolphinscheduler3. 重启所有服务:sh /usr/local/dolphinscheduler/bin/stop-all.sh && sh /usr/local/dolphinscheduler/bin/start-all.sh【Docker 专属解决方案(重点适配本次报错)】 Docker 环境默认不会自动初始化资源目录,是该报错的重灾区,无需进入容器手动建目录,推荐永久修复方案: 1. 停止并删除原有 DolphinScheduler 容器/服务 2. 启动容器/编排服务时,手动指定资源存储路径环境变量,核心参数:DOLPHINSCHEDULER_RESOURCE_STORAGE_LOCAL_BASE_PATH=/tmp/dolphinscheduler/resources3. 若为 docker-compose 部署,直接在 api、master、worker 服务中添加上述环境变量;若为单容器启动,追加 -e 环境变量参数 4. 重新启动服务后,容器会自动生成资源目录,彻底解决空指针问题 临时应急方案:进入容器执行mkdir -p /tmp/dolphinscheduler/resources && chmod 777 -R /tmp/dolphinscheduler,无需重启即可临时恢复使用。
六、总结
DolphinScheduler 相比传统调度工具,优势十分明显:可视化拖拽、多任务类型支持、依赖调度、日志清晰、运维简单。
本文覆盖了 环境准备→单机安装→数据库初始化→默认账号密码→从零搭建调度任务 全流程,新手看完即可独立部署和使用,完全满足测试、小型生产场景的定时任务、工作流调度需求。
后续可以进阶学习:多节点集群部署、任务依赖编排、告警配置、资源上限管控、与 Hadoop/Spark 大数据组件集成调度。