最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境
0 说明
本文基于最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境,并在windows本地进行调试和开发
1 准备
1.1 安装mysql
可以指定为windows本地mysql,也可以指定为其他环境mysql,若指定为其他环境mysql则可跳过此步。
我这里采用windows本地安装mysql,
① 下载mysql
下载mysql并安装
② 解压下载好的文件,并在解压目录下,新建my.ini文件。并输入以下内容
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ---这里输入你安装的文件路径----
basedir=E:\workplace\dolphinscheduler-3.1.3\mysql\mysql-8.0.32-winx64
# 设置mysql数据库的数据的存放目录
datadir=E:\workplace\dolphinscheduler-3.1.3\mysql\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
这里的basedir和datadir需要修改为你当前自己的目录
③ 进入cmd
mysqld --initialize --console
执行后会生成一个随机密码,复制该密码,后续会有用
④执行安装命令
mysqld --install mysql
注意:如果报Install /Remove of the service Denied,需要以管理员方式启动cmd,然后再次执行该命令即可。
⑤ 启动mysql
选择我的电脑,右键管理-服务和应用查询-服务,找到mysql服务,并启动

⑥ cmd执行
mysql -uroot -p
输入刚才的随机密码,进入mysql
⑦ 重置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码';
1.2 安装zookeeper
同样这里的zk仍然可以采用windows本地安装或者用其他机器的zk,我这里采用windows本地安装方式
① 下载
注:这里需要下载3.8版本的zk,因为在最新版本的dolphinscheduler中依赖的是3.8.0版本的zk,如果zk版本过低会报错,无法正常启动dolphinscheduler,详见《最新版海豚调度dolphinscheduler-3.1.3安装部署详细教程》
https://zookeeper.apache.org/releases.html
② 解压下载的文件
③ 复杂conf/zoo_sample.cfg为zoo.cfg
④ 修改zoo.cfg
因为当前部署为单机模式,只需修改dataDir和logDir即可

⑤ 验证
执行
bin/zkServer.cmd
再执行
bin/zkCli.cmd
看到如下页面,则说明zk安装并启动成功

1.3 git 安装
这里不再赘述,git主要用来拉取dolphinscheduler代码
1.4 maven安装
这里不再赘述,maven主要用于项目管理
1.5 安装Node16.13+
前端调式需要,下载地址
1.6 安装Pnpm
前端调试需要,使用powershell下载安装
iwr https://get.pnpm.io/install.ps1 -useb | iex

2 mysql配置
2.1 新建dolphinscheduler库
① 在mysql中新建库,用于dolphinscheduler调用
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
② 新建dolphinscheduler用户,并赋予dolphinscheduler库权限
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
CREATE USER 'dolphinscheduler'@'localhost' IDENTIFIED BY 'dolphinscheduler';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dolphinscheduler'@'localhost';
FLUSH PRIVILEGES;

2.2 执行sql
在mysql的dolphinscheduler库中执行dolphinscheduler源码目录下的dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql的文件,以此完成数据的初始化。我这里是在navicat中运行相关sql

运行成功之后,可以看到库中有如下表:

2.3 修改ds数据源配置文件
1)如果使用 MySQL 作为元数据库,需要先修改 dolphinscheduler/pom.xml,将 mysql-connector-java 依赖的 scope 改为 compile
2)修改 Master 数据库配置,修改 dolphinscheduler-master/src/main/resources/application.yaml 文件中的数据库配置
3)修改 Worker 数据库配置,修改 dolphinscheduler-worker/src/main/resources/application.yaml 文件中的数据库配置
4)修改 Api 数据库配置,修改 dolphinscheduler-api/src/main/resources/application.yaml 文件中的数据库配置

注意这里的serverTimezone=UTC表示设置时区,一定要加上,否则会报错如下:
Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support

3 修改zk配置
修改application.yml中zk的连接地址,如果这里采用windows本地安装zk的方式则不用修改,否则需要修改为对应的zk地址。

3 修改日志级别
修改日志级别:为以下配置增加一行内容 使日志能在命令行中显示
dolphinscheduler-master/src/main/resources/logback-spring.xml
dolphinscheduler-worker/src/main/resources/logback-spring.xml dolphinscheduler-api/src/main/resources/logback-spring.xml
添加内容如下:
<appender-ref ref="STDOUT"/>
修改后内容如下:

4 启动服务
需要启动三个服务,包括 MasterServer,WorkerServer,ApiApplicationServer
4.1 MasterServer
执行 org.apache.dolphinscheduler.server.master.MasterServer 中的 main 方法,并配置VM Options
-Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
注:VM Options -Dspring.profiles.active=mysql 中 mysql 表示指定的配置文件

启动时报如下错误:
Error running 'MasterServer': Command line is too long. Shorten command line for MasterServer or also for Spring Boot default configuration

解决办法:在项目的.idea/workspace.xml文件中,找到,后面在添加一行
<property name="dynamic.classpath" value="true" />

启动成功

4.2 WorkerServer
执行 org.apache.dolphinscheduler.server.worker.WorkerServer 中的 main 方法,并配置 VM Options
-Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql

启动成功

4.3 ApiApplicationServer
执行 org.apache.dolphinscheduler.api.ApiApplicationServer 中的 main 方法,并配置VM Options
-Dlogging.config=classpath:logback-spring.xml -Dspring.profiles.active=api,mysql

启动成功

4.4 验证
启动完成可以浏览 Open API 文档,地址为 http://localhost:12345/dolphinscheduler/swagger-ui/index.html

4.5 启动前端
安装前端依赖并运行前端组件
cd dolphinscheduler-ui
pnpm install
pnpm run dev


截止目前,前后端已成功运行起来,浏览器访问http://localhost:5173,并使用默认账户密码 admin/dolphinscheduler123 即可完成登录

5 附 dolphinscheduler 远程debug调试
5.1 修改配置文件
修改api-server/bin/start.sh,添加如下内容:
-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n

重启dolphinscheduler,可以看到远程bebug功能已开启

5.2 设置idea远程debug

5.3 调试
以触发任务接口executors/start-process-instance为例子,idea打断点执行,页面点击运行,即可进入debug调试


相关文章:
最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境
0 说明 本文基于最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境,并在windows本地进行调试和开发 1 准备 1.1 安装mysql 可以指定为windows本地mysql,也可以指定为其他环境mysql,若指定为其他环境mysql则可跳过此步。 我这…...
csv文件完整操作总结
csv文件完整操作总结 1.概述 csv 模块主要用于处理从电子数据表格Excel或数据库中导入到文本文件的数据,通常简称为 comma-separated value (CSV)格式因为逗号用于分离每条记录的各个字段。 2.读写操作 2.1.测试数据 创建一个test.csv文…...
时间序列预测--基于CNN的股价预测(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨💻4 Matlab代码 💥1 概述 时间序列预测有很多方法,如传统的时序建模方法ARIMA、周期因子法、深度学习网络等,本次实验采用最简单的…...
Dubbo与Spring Cloud优缺点分析(文档学习个人理解)
文章目录核心部件1、总体框架1.1 Dubbo 核心部件如下1.2 Spring Cloud 总体架构2、微服务架构核心要素3、通讯协议3.1 Dubbo3.2 Spring Cloud3.3 性能比较4、服务依赖方式4.1 Dubbo4.2 Spring Cloud5、组件运行流程5.1 Dubbo5.2 Dubbo 运行组件5.3 Spring Cloud5.4 Spring Clou…...
单元测试工具——JUnit的使用
⭐️前言⭐️ 本篇文章主要介绍单元测试工具JUnit的使用。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 🍉博客中涉及源码…...
Linux_基本权限
Linux入门第二篇已送达! Linux_基本权限shell外壳权限Linux的用户分类角色划分Linux的文件文件类型查看权限目录的权限默认权限粘滞位shell外壳 为了保护操作系统,用户的指令不能由操作系统直接进行执行,需要一个中间者,比如Linu…...
3、JavaScript面试题
1, Js数据类型有哪些?数值、字符串、布尔、undefined、null、数组、对象、函数2, 引用类型和值类型的区别- 值类型存在于栈中, 存取速度快 引用类型存在于堆,存取速度慢- 值类型复制的是值本身 引用类型复制的是指向对象的指针- 值类型结构简单只包含基本数据, 引用…...
YUV图像
YUV的存储方式UV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。YUV的采样主流…...
.net6API使用AutoMapper和DTO
AutoMapper,是一个转换工具,说到AutoMapper时,就不得不先说DTO,它叫做数据传输对象(Data Transfer Object)。 通俗的来说,DTO就是前端界面需要用的数据结构和类型,而我们经常使用的数据实体,是数…...
IO知识整理
IO 面向系统IO page cache 程序虚拟内存到物理内存的转换依靠cpu中的mmu映射 物理内存以page(4k)为单位做分配 多个程序访问磁盘上同一个文件,步骤 kernel将文件内容加载到pagecache多个程序读取同一份文件指向的同一个pagecache多个程…...
【正点原子FPGA连载】第十三章QSPI Flash读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十三章QSPI Fl…...
深入理解mysql的内核查询成本计算
MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...
LeetCode 141. 环形链表
原题链接 难度:easy\color{Green}{easy}easy 题目描述 给你一个链表的头节点 headheadhead ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 nextnextnext 指针再次到达,则链表中存在环。 为了表示给定链表中的…...
git提交
文章目录关于数据库:桌面/vue-admin/vue_shop_api 的 git 输入 打开 phpStudy ->mySQL管理器 导入文件同时输入密码,和文件名 node app.js 错误区: $ git branch // git branch 查看分支 只有一个main分支不见master解决: gi…...
Java中常见的编码集问题
收录于热门专栏Java基础教程系列(进阶篇) 一、遇到一个问题 1、读取CSV文件 package com.guor.demo.charset;import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import java.util.HashMap; import java.util.L…...
数据结构与算法(Java版) | 就让我们来看看几个实际编程中遇到的问题吧!
上一讲,我给大家简单介绍了一下数据结构,以及数据结构与算法之间的关系,照理来说,接下来我就应该要给大家详细介绍线性结构和非线性结构了,但是在此之前,我决定还是先带着大家看几个实际编程中遇到的问题&a…...
【C++算法】dfs深度优先搜索(上) ——【全面深度剖析+经典例题展示】
💃🏼 本人简介:男 👶🏼 年龄:18 📕 ps:七八天没更新了欸,这几天刚搞完元宇宙,上午一直练🚗,下午背四级单词和刷题来着,还在忙一些学弟…...
总结高频率Vue面试题
目录 什么是三次握手? 什么是四次挥手?(close触发) 什么是VUEX? 什么是同源----跨域? 什么是Promise? 什么是fexl布局? 数据类型 什么是深浅拷贝? 什么是懒加载&…...
IP协议详解
目录 前言: IP协议 提出问题 解决方案 地址管理 子网掩码 路由选择 小结: 前言: IP协议作为网络层知名协议。当数据经过传输层使用TCP或者UDP对数据进行封装,然后当数据到达网络层,基于TCP或UDP数据包继续进行…...
webpack5 基础配置
在开发中,我们会使用 vue、react、less、scss等语法进行开发项目,但是浏览器只能识别 js、css,或者说在js中使用了es6中的import 导入 这时候也需要打包工具去转换成浏览器可以识别的语句。 一、使用webpack 1.初始化package.json npm i…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅!
【把数组变成一棵树】有序数组秒变平衡BST,原来可以这么优雅! 🌱 前言:一棵树的浪漫,从数组开始说起 程序员的世界里,数组是最常见的基本结构之一,几乎每种语言、每种算法都少不了它。可你有没有想过,一组看似“线性排列”的有序数组,竟然可以**“长”成一棵平衡的二…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
