前置依赖组件安装

  找一台服务器,或者本地的虚拟机,然后在服务器上安装好jdk,zookeeper,mysql。

1.源码调试环境搭建

  源码环境搭建可以参考DolphinScheduler官方网站的开发者指南。

---------------------引用自官方网站的开发者指南---------------------

准备工作

  1. 首先从远端仓库fork dolphinscheduler 一份代码到自己的仓库中

  2. 在开发环境中安装好MySQL/PostgreSQL、JDK、MAVEN

  3. 把自己仓库clone到本地

    git clone https://github.com/apache/incubator-dolphinscheduler.git

  4. git clone项目后,进入项目目录,执行以下命令。

1. git branch -a    #查看分支
2. git checkout dev #切换到dev分支
3. git pull #同步分支
4. mvn -U clean package -Prelease -Dmaven.test.skip=true #由于项目使用了gRPC,所以需要先编译项目生成需要的类。

安装node

  1. 安装nvm
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
  2. 刷新环境变量
    source ~/.bash_profile
  3. 安装node
    nvm install v12.12.0
    备注:mac用户还可以通过brew安装npm:brew install npm
  4. 验证node安装成功
    node --version

安装zookeeper

  1. 下载zookeeper
    http://apache.mirrors.hoobly.com/zookeeper/zookeeper-3.6.1/apache-zookeeper-3.6.1-bin.tar.gz
  2. 复制配置文件
    cp conf/zoo_sample.cfg conf/zoo.cfg
  3. 修改配置
    vi conf/zoo.cfg
    dataDir=./tmp/zookeeper
  4. 启动/停止zookeeper
    ./bin/zkServer.sh start ./bin/zkServer.sh stop

创建数据库

  1. 创建用户名为ds_user,密码为dolphinscheduler的用户
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'%' IDENTIFIED BY 'dolphinscheduler';
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'ds_user'@'localhost' IDENTIFIED BY 'dolphinscheduler';
mysql> flush privileges;

搭建前端

  1. 进入dolphinscheduler-ui的目录
    cd dolphinscheduler-ui
  2. 执行npm install

搭建后端

  1. 将项目导入到idea中
    file-->open

  2. 修改dao模块resource目录下datasource.properties文件中的数据库配置信息

        spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/dolphinscheduler
    spring.datasource.username=ds_user
    spring.datasource.password=dolphinscheduler
  3. 修改根项目中pom.xml,将mysql-connector-java依赖的scope修改为compile

  4. 刷新dao模块,运行org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler的main方法,自动插入项目所需的表和数据

  5. 修改service模块resources文件夹下的zookeeper.properties中链接信息(zookeeper.quorum)
    zookeeper.quorum=localhost:2181

  6. 修改dolphinscheduler-ui模块的.env文件

API_BASE = http://localhost:12345
DEV_HOST = localhost

启动项目

  1. 启动zookeeper
    ./bin/zkServer.sh start

  2. 启动MasterServer,执行org.apache.dolphinscheduler.server.master.MasterServer的main方法,需要设置VM Options:

        -Dlogging.config=classpath:logback-master.xml -Ddruid.mysql.usePingMethod=false
  3. 启动WorkerServer,执行org.apache.dolphinscheduler.server.worker.WorkerServer的main方法,需要设置VM Options:

        -Dlogging.config=classpath:logback-worker.xml -Ddruid.mysql.usePingMethod=false
  4. 启动ApiApplicationServer,执行org.apache.dolphinscheduler.api.ApiApplicationServer的main方法,需要设置VM Options:

        -Dlogging.config=classpath:logback-api.xml -Dspring.profiles.active=api
  5. ,这里暂时不启动其它模块,如果启动其它模块,那么去查询script/dolphinscheduler-daemon.sh文件,设置相应的VM Options

        if [ "$command" = "api-server" ]; then
    LOG_FILE="-Dlogging.config=classpath:logback-api.xml -Dspring.profiles.active=api"
    class="org".apache.dolphinscheduler.api.ApiApplicationServer
    elif [ "$command" = "master-server" ]; then
    LOG_FILE="-Dlogging.config=classpath:logback-master.xml -Ddruid.mysql.usePingMethod=false"
    class="org".apache.dolphinscheduler.server.master.MasterServer
    elif [ "$command" = "worker-server" ]; then
    LOG_FILE="-Dlogging.config=classpath:logback-worker.xml -Ddruid.mysql.usePingMethod=false"
    class="org".apache.dolphinscheduler.server.worker.WorkerServer
    elif [ "$command" = "alert-server" ]; then
    LOG_FILE="-Dlogback.configurationFile=conf/logback-alert.xml"
    class="org".apache.dolphinscheduler.alert.AlertServer
    elif [ "$command" = "logger-server" ]; then
    class="org".apache.dolphinscheduler.server.log.LoggerServer
    else
    echo "Error: No command named \`$command' was found."
    exit 1
    fi
  6. 启动前端ui模块
    cd dolphinscheduler-ui目录,执行npm run start

访问项目

    1. 访问http://localhost:8888
      输入管理员账户admin,密码dolphinscheduler123进行登陆

---------------------结束官方文档引用-----------------------------

一般照着这个官方文档来做就可以,重点关注3个配置文件需要修改

一般需要启动3个地方,分别是

  1. dolphinscheduler-api模块下的ApiApplicationServer.java中的main方法

  2. dolphinscheduler-server模块下的MasterServer.java中的main方法

  3. dolphinscheduler-worker模块下的WorkerServer.java中的main方法

第一次启动,如果没有修改vm参数可能会报错或者启动到8080端口上去,这时候需要修改一下启动参数后再启动。如下图


2.启动后端进程

至此,我们可以开始启动ApiApplicationServer、WorkerServer、MasterMasterServer了,这三个是后端的进程。

还是直接放图吧,直观一些

关注一下启动的日志,看看是否有报错信息,如果没有报错就代表三个后台进程启动成功了。

3.启动前端

启动成功的话,应该能用浏览器直接打开 localhost:8888

看到如下的页面代表成功启动啦~~~

初始用户名:admin

初始密码:dolphinscheduler123

环境搭建就到这里结束啦,然后接下来我们会对DolphinScheduler进行探秘,

谢谢看到最后,给自己点个赞吧,加油!!!

DolphinScheduler1.3.2源码分析(二)搭建源码环境以及启动项目的更多相关文章

  1. Fresco 源码分析(二) Fresco客户端与服务端交互(1) 解决遗留的Q1问题

    4.2 Fresco客户端与服务端的交互(一) 解决Q1问题 从这篇博客开始,我们开始讨论客户端与服务端是如何交互的,这个交互的入口,我们从Q1问题入手(博客按照这样的问题入手,是因为当时我也是从这里 ...

  2. 框架-springmvc源码分析(二)

    框架-springmvc源码分析(二) 参考: http://www.cnblogs.com/leftthen/p/5207787.html http://www.cnblogs.com/leftth ...

  3. Tomcat源码分析二:先看看Tomcat的整体架构

    Tomcat源码分析二:先看看Tomcat的整体架构 Tomcat架构图 我们先来看一张比较经典的Tomcat架构图: 从这张图中,我们可以看出Tomcat中含有Server.Service.Conn ...

  4. 十、Spring之BeanFactory源码分析(二)

    Spring之BeanFactory源码分析(二) 前言 在前面我们简单的分析了BeanFactory的结构,ListableBeanFactory,HierarchicalBeanFactory,A ...

  5. Vue源码分析(二) : Vue实例挂载

    Vue源码分析(二) : Vue实例挂载 author: @TiffanysBear 实例挂载主要是 $mount 方法的实现,在 src/platforms/web/entry-runtime-wi ...

  6. 多线程之美8一 AbstractQueuedSynchronizer源码分析<二>

    目录 AQS的源码分析 该篇主要分析AQS的ConditionObject,是AQS的内部类,实现等待通知机制. 1.条件队列 条件队列与AQS中的同步队列有所不同,结构图如下: 两者区别: 1.链表 ...

  7. Android笔记--View绘制流程源码分析(二)

    Android笔记--View绘制流程源码分析二 通过上一篇View绘制流程源码分析一可以知晓整个绘制流程之前,在activity启动过程中: Window的建立(activit.attach生成), ...

  8. NIO 源码分析(05) Channel 源码分析

    目录 一.Channel 类图 二.begin 和 close 是什么 2.1 AbstractInterruptibleChannel 中的 begin 和 close 2.2 Selector 中 ...

  9. NIO 源码分析(02-2) BIO 源码分析 Socket

    目录 一.BIO 最简使用姿势 二.connect 方法 2.1 Socket.connect 方法 2.2 AbstractPlainSocketImpl.connect 方法 2.3 DualSt ...

  10. NIO 源码分析(02-1) BIO 源码分析

    目录 一.BIO 最简使用姿势 二.ServerSocket 源码分析 2.1 相关类图 2.2 主要属性 2.3 构造函数 2.4 bind 方法 2.5 accept 方法 2.6 总结 NIO ...

随机推荐

  1. UML第三次结对作业

    这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/homework/11274 这个作业的目标 <学会使用专业的建模工具> 队 ...

  2. 【原创】中断子系统-ARM GPIO中断处理流程

    目录 第一部分 GIC中断控制器的注册 1. GIC驱动分析 2.GIC驱动流程分析 第二部分 device node转化为platform_device 第三部分:platform_device注册 ...

  3. LeetCode844 比较含退格的字符串

    题目描述: 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 示例 1: 输入:S = "ab#c", T = ...

  4. LeetCode278 第一个错误的版本

    你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. 假设你有 n 个版本 [1, ...

  5. redis存json数据时选择string还是hash

    redis存json数据时选择string还是hash 我们在缓存json数据到redis时经常会面临是选择string类型还是选择hash类型去存储.接下来我从占用空间和IO两方面来分析这两种类型的 ...

  6. Docker 介绍和安装(一)

    # 下载阿里云的 Centos7 的docker.repo # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-pers ...

  7. Redis Cluster 集群节点维护 (三)

    Redis Cluster 集群节点维护: 集群运行很久之后,难免由于硬件故障,网络规划,业务增长,等原因对已有集群进行相应的调整,比如增加redis nodes 节点,减少节点,节点迁移,更换服务器 ...

  8. 【Oracle】查询锁的相关SQL

    --查看有锁的进程 select t2.username,t2.sid,t2.serial#,t2.logon_time,t2.state from v$locked_object t1,v$sess ...

  9. kubernets之pod的删除方式

    一 删除单个pod 1  删除指定命名空间的指定名称的pod k delete po kubia-manual -n defaultpod "kubia-manual" delet ...

  10. wmic process进程管理

    process    进程管理工具 示例:1.列举当前的进程.进程路径.命令行.进程ID.父进程ID.线程数,内存使用::wmic process get name,executablepath,co ...