近期由于工作需要上线离线调度,时间紧迫大概简单了解了下,再加上之前老东家也简单用过,感觉还行,由于生产环境客户要求服务器禁止免密,禁止sudo使用,根据我之前的了解,默认是使用sudo的且一键安装是需要免密的,由于之前在老东家是别人搞得,只是简单用了下,故这里做下简单探索
我这里用得是1.8.0_311
我用的是IntelliJ IDEA Community Edition 2021.3.2
我这里用得是apache-maven-3.8.4
这个是用于启动前端的,版本是node-v12.9.1,这里特别说明下,之前用得是最新版本的18.X的,结果发现报莫名其妙的错误,由于不是搞嵌段的不太熟vue的错误,从网上看了下,改成12.X可以正常启动了
用于存储dolphinscheduler元数据以及支持调度依赖等,我用的是8.x
zookeeper
用于注册信息服务,我用的是3.4.14
官方下载地址:download
选择自己需要的版本即可
我这里是在windows服务器安装的就直接解压的linux可以用过tar命令解压
进入到DolphinScheduler的home目录下进行编译
mvn -U install package -Prelease -Dmaven.test.skip=true
直接导入代码后编译即可
修改pom.xml
进入到dolphinscheduler目录,修改pom.xml,将 mysql-connector-java 依赖的test改为 compile,如下
mysql
mysql-connector-java
${mysql.connector.version}
compile
修改 dolphinscheduler-dao/src/main/resources/application-mysql.yaml 文件中的数据库配置,修改效果如下
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
以上四条信息是基本信息,其他配置可根据需求自行修改优化
为了方便控制台输出调试,可分别修改日志输出待控制台
分别在日志级别配置加入
dolphinscheduler-server/src/main/resources/logback-worker.xml
dolphinscheduler-server/src/main/resources/logback-master.xml
dolphinscheduler-api/src/main/resources/logback-api.xml
这里以api为例效果如下
org.apache.dolphinscheduler.server.master.MasterServer中右击修改运行时配置添加添加VM参数:-Dlogging.config=classpath:logback-master.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
org.apache.dolphinscheduler.server.worker.WorkerServer中右击修改运行时配置添加添加VM参数:-Dlogging.config=classpath:logback-worker.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
org.apache.dolphinscheduler.api.ApiApplicationServer中右击修改运行时配置添加添加VM参数:
-Dlogging.config=classpath:logback-api.xml -Dspring.profiles.active=api,mysql
至此所有信息修改完成
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'dolphinscheduler'@'%' IDENTIFIED BY 'dolphinscheduler';
GRANT ALL ON dolphinscheduler.* TO 'dolphinscheduler'@'%';
dolphinscheduler-dao\src\main\resources\sql\dolphinscheduler_mysql.sql(可通听过source命令直接导入qicheduler的main方法初始化,初始化完成后进入库中看下
找到自己安装的zookeeper启动即可
进入org.apache.dolphinscheduler.server.master.MasterServer运行main方法即可启动
进入org.apache.dolphinscheduler.server.worker.WorkerServer中执行main方法即可启动
进入org.apache.dolphinscheduler.api.ApiApplicationServer中执行main方法即可启动
访问api后台接口查看是否正常http://localhost:12345/dolphinscheduler/doc.html
进入项目到dolphinscheduler-ui目录下,通过cmd执行 npm install 和npm run start前后端已成功运行起来,浏览器访问http://localhost:8888,并使用默认账户密码 admin/dolphinscheduler123 即可完成登录
效果如下表
关于前边说的非免密模式下也可以安装,只不过是需要手动安装每个组件然后启动(思路是根据一键安装的脚本走;
关于禁止使用sudo权限的问题,搭建完后执行调度脚本报错如下
通过观察发现默认是使用sudo的,如果服务器的执行用户没在sudoers中会直接推出的,任务也会失败,当时的思路是实在不行直接修改代码,后来仔细看了下文档,sudo是个开关,common.properties配置参数可以直接关闭的,所以还是需要认证看文档的 如下