博客 / 詳情

返回

新手教程:用外部 PostgreSQL 和 Zookeeper 啓動 Dolphinscheduler

tutorials-5238355_1280

本文將帶你一步步通過外部PostgreSQL和Zookeeper來啓動Apache DolphinScheduler。無論你是新手還是有經驗的開發者,都能輕鬆跟着這些步驟在Linux/Unix環境中完成安裝和配置。除了常見的安裝步驟,我們還會分享一些集羣部署的技巧,讓你輕鬆擴展系統規模。

當然,如果遇到數據庫連接、Zookeeper連接或者啓動服務的問題,不用擔心,文中也有詳細的排查方案,幫你輕鬆搞定!

系統要求

  • 操作系統:Linux/Unix (推薦CentOS 7+或Ubuntu 16.04+)
  • Java環境:JDK 1.8+
  • 數據庫:PostgreSQL 9.6+
  • 分佈式協調服務:Zookeeper 3.4.6+
  • 內存:建議至少4GB
  • 磁盤空間:建議至少10GB

    準備工作

  • 安裝和配置PostgreSQL
# 安裝PostgreSQL (以CentOS為例)
sudo yum install -y postgresql-server postgresql-contrib
 
# 初始化數據庫
sudo postgresql-setup initdb
 
# 啓動服務
sudo systemctl start postgresql
sudo systemctl enable postgresql
 
# 創建DolphinScheduler數據庫和用户
sudo -u postgres psql -c "CREATE USER dolphinscheduler WITH PASSWORD 'yourpassword';"
sudo -u postgres psql -c "CREATE DATABASE dolphinscheduler OWNER dolphinscheduler;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE dolphinscheduler TO dolphinscheduler;"
 
# 修改pg_hba.conf配置
sudo vi /var/lib/pgsql/data/pg_hba.conf
# 添加或修改以下行:
host    all             all             0.0.0.0/0               md5
 
# 修改postgresql.conf配置
sudo vi /var/lib/pgsql/data/postgresql.conf
# 修改listen_addresses為:
listen_addresses = '*'
 
# 重啓PostgreSQL
sudo systemctl restart postgresql
  1. 安裝和配置Zookeeper

    # 下載Zookeeper
    wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
    tar -xzf apache-zookeeper-3.7.1-bin.tar.gz
    mv apache-zookeeper-3.7.1-bin /opt/zookeeper
     
    # 配置Zookeeper
    cd /opt/zookeeper/conf
    cp zoo_sample.cfg zoo.cfg
    vi zoo.cfg
    # 修改數據目錄和添加服務器配置(如果是集羣)
    dataDir=/opt/zookeeper/data
    # 單機模式不需要修改server配置
     
    # 創建數據目錄
    mkdir /opt/zookeeper/data
     
    # 啓動Zookeeper
    /opt/zookeeper/bin/zkServer.sh start

    安裝和配置DolphinScheduler 3.1.9

  2. 下載和解壓

    wget https://downloads.apache.org/dolphinscheduler/3.1.9/apache-dolphinscheduler-3.1.9-bin.tar.gz
    tar -xzf apache-dolphinscheduler-3.1.9-bin.tar.gz
    mv apache-dolphinscheduler-3.1.9-bin /opt/dolphinscheduler
  3. 修改配置文件
    修改common.properties

    vi /opt/dolphinscheduler/conf/common.properties

    修改以下配置:

    # 數據庫配置
    spring.datasource.driver-class-name=org.postgresql.Driver
    spring.datasource.url=jdbc:postgresql://your-postgresql-server:5432/dolphinscheduler
    spring.datasource.username=dolphinscheduler
    spring.datasource.password=yourpassword
    
    # Zookeeper配置
    registry.plugin.name=zookeeper
    registry.plugin.type=zookeeper
    registry.servers=your-zookeeper-server:2181

    修改環境變量(可選)

    vi /opt/dolphinscheduler/conf/env/dolphinscheduler_env.sh

    添加或修改Java環境變量:

    export JAVA_HOME=/usr/java/jdk1.8.0_291
    export PATH=$JAVA_HOME/bin:$PATH
  4. 初始化數據庫

    /opt/dolphinscheduler/script/create-dolphinscheduler.sh
  5. 啓動服務
    啓動Master Server

    /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start master-server

    啓動Worker Server

    /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start worker-server

    啓動API Server

    /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start api-server

    啓動Alert Server

    /opt/dolphinscheduler/bin/dolphinscheduler-daemon.sh start alert-server

    驗證安裝

  6. 檢查進程狀態:

    ps -ef | grep dolphinscheduler
  7. 訪問Web UI: 默認端口:12345 訪問URL:http://your-server-ip:12345/dolphinscheduler 默認用户名/密碼:admin/dolphinscheduler123

    集羣部署指南

    集羣模式部署步驟

    如果需要部署為集羣模式,需要按照以下步驟進行操作:

  8. 多節點部署Worker Server

節點要求

  • 在至少3個節點(建議奇數個)上重複Worker Server的安裝過程
  • 每個節點需要相同的安裝包版本,確保組件版本一致性
  • 服務器硬件配置建議:

    • CPU: 4核以上
    • 內存: 8GB以上
    • 磁盤: 100GB以上(根據業務數據量調整)

示例部署方案

  • 節點1(主節點):Master Server + Worker Server

    • IP: 192.168.1.101
    • 角色: 主控節點+工作節點
  • 節點2(工作節點):Worker Server

    • IP: 192.168.1.102
    • 角色: 工作節點
  • 節點3(工作節點):Worker Server

    • IP: 192.168.1.103
    • 角色: 工作節點

安裝注意事項

1. 在每個節點上執行相同的安裝腳本
2. 確保所有節點的安裝路徑一致
3. 檢查各節點間的網絡連通性(建議使用ping/telnet測試)
  1. 配置registry.servers

詳細配置步驟

  1. 修改所有節點上的common.properties配置文件

    • 文件路徑:/opt/your_app/conf/common.properties
  2. registry.servers設置為Zookeeper集羣地址
  3. 格式示例:

    registry.servers=zk1:2181,zk2:2181,zk3:2181

    配置驗證

  4. 使用zkCli.sh連接Zookeeper驗證配置是否正確

    ./zkCli.sh -server zk1:2181
  5. 檢查節點註冊情況:

    ls /your_app/nodes
  6. 時間同步配置

詳細時間同步方案

所有節點必須保持時間同步(誤差不超過1秒),建議配置如下:

NTP服務配置步驟

  1. 安裝NTP服務:

    yum install -y ntp
  2. 配置NTP服務器(以阿里雲NTP為例):

    ntpdate ntp.aliyun.com
  3. 設置自動同步:

    # 設置開機啓動
    systemctl enable ntpd
    # 啓動服務
    systemctl start ntpd
  4. 驗證時間同步:

    ntpq -p
    date

    備選時間同步方案

如果無法連接外網NTP服務器,可配置內網時間服務器:

  1. 指定一台服務器作為時間服務器
  2. 其他節點同步該服務器時間
  3. 配置示例:

    ntpdate 192.168.1.100

    時間同步注意事項

  4. 建議配置crontab定期同步時間

    */5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1
  5. 對於金融等對時間敏感的系統,建議誤差控制在100毫秒以內

    常見問題解決方案

    數據庫連接失敗排查

  6. PostgreSQL遠程連接配置
  • 檢查pg_hba.conf文件,確保包含類似配置:

    host    all             all             0.0.0.0/0               md5
  • 修改後需重啓PostgreSQL服務
  1. 驗證憑據
  • 使用psql命令行測試連接:

    psql -h [host] -U [username] -d [database]
  • 確認密碼輸入正確
  • 防火牆檢查
  • 檢查節點間5432端口是否開放:

    firewall-cmd --list-all
  • 如需開放:

    firewall-cmd --zone=public --add-port=5432/tcp --permanent
    firewall-cmd --reload

    Zookeeper連接問題排查

  • 基礎連接測試

    • 使用telnet測試連接:
    * telnet your-zookeeper-server 2181
    • 成功應顯示"Connected to your-zookeeper-server"
  • 日誌檢查

    • 查看Zookeeper日誌:

      tail -f /var/log/zookeeper/zookeeper.log
    • 常見問題:

      • 磁盤空間不足
      • 內存配置過低
      • 集羣節點未正確配置

服務啓動失敗排查

  1. 日誌分析

    • 檢查主日誌文件:
    tail -n 100 /opt/dolphinscheduler/logs/dolphinscheduler-api.log
    • 檢查各組件日誌:
    /opt/dolphinscheduler/logs/
    ├── dolphinscheduler-alert-server.log
    ├── dolphinscheduler-api-server.log
    ├── dolphinscheduler-master-server.log
    └── dolphinscheduler-worker-server.log
  2. Java環境驗證

    檢查Java版本:

    java -version
    • 要求:JDK 1.8+
    • 檢查JAVA_HOME配置:
    echo $JAVA_HOME

    檢查內存配置:

    jmap -heap <pid>
  3. 端口衝突檢查

    • 查看端口使用情況:
    netstat -tunlp | grep [port]
    • 默認端口:

      • Master Server: 5678
      • Worker Server: 1234
      • API Server: 12345

原文鏈接:https://blog.csdn.net/NIIT0532/article/details/149217318

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.