DolphinScheduler1.3.2源碼分析(二)搭建源碼環境以及啟動項目


前置依賴組件安裝

  找一台服務器,或者本地的虛擬機,然后在服務器上安裝好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進行探秘,

謝謝看到最后,給自己點個贊吧,加油!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM