前置依赖组件安装

  找一台服务器,或者本地的虚拟机,然后在服务器上安装好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. window10 安装Mysql 8.0.17以及忘记密码重置密码

    一.安装Mysql8.0.17 1:首先去官网下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/ 2:将解压文件解压到你安装的目录:D:\mysql\m ...

  2. [论文阅读笔记] node2vec Scalable Feature Learning for Networks

    [论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...

  3. wdCP V3.2

    wdCP是什么?关于wdCP更多的介绍,可看http://www.wdlinux.cn/wdcp/安装前先去体验下,看演示站吧http://www.wdlinux.cn/bbs/thread-5285 ...

  4. 腾讯IOT之树莓派物联网设备

    目录 腾讯IOT之树莓派物联网设备 硬件配置 软件配置 Tecent IOT 开发平台的使用 新建项目 新建产品 添加自定义功能 设备开发 微信小程序配置 面板配置 新建设备 使用设备 在线调试 设备 ...

  5. Thread线程控制之sleep、join、setDaemon方法的用处

    Thread线程控制之sleep.join.setDaemon方法的用处 1. sleep方法 public static void sleep(long millis) throws Interru ...

  6. IE浏览器F12无法使用

    原文链接http://zhhll.icu/2020/04/07/windows/IE%E6%B5%8F%E8%A7%88%E5%99%A8F12%E6%97%A0%E6%B3%95%E4%BD%BF% ...

  7. mysql高并发解决方案

    mysql高并发的解决方法有: 优化SQL语句,优化数据库字段,加缓存,分区表,读写分离以及垂直拆分,解耦模块,水平切分等. 高并发大多的瓶颈在后台,在存储mysql的正常的优化方案如下: (1)代码 ...

  8. Redis集群搭建与简单使用【转】

    Redis集群搭建与简单使用 安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master.3 salve 环境. redis 采用 redis-3.2.4 版本. 两台虚拟机都 ...

  9. 【Java基础】异常处理

    异常处理 异常概述 在 Java 语言中,将程序执行中发生的不正常情况称为"异常",但是开发过程中的语法错误和逻辑错误不是异常. 在执行过程中所发生的异常事件可分为两类: Erro ...

  10. 获取网页url中的参数

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...