本文將帶你一步步通過外部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
-
安裝和配置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
-
下載和解壓
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 -
修改配置文件
修改common.propertiesvi /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 -
初始化數據庫
/opt/dolphinscheduler/script/create-dolphinscheduler.sh -
啓動服務
啓動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驗證安裝
-
檢查進程狀態:
ps -ef | grep dolphinscheduler -
訪問Web UI: 默認端口:12345 訪問URL:http://your-server-ip:12345/dolphinscheduler 默認用户名/密碼:admin/dolphinscheduler123
集羣部署指南
集羣模式部署步驟
如果需要部署為集羣模式,需要按照以下步驟進行操作:
- 多節點部署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測試)
- 配置registry.servers
詳細配置步驟
-
修改所有節點上的
common.properties配置文件- 文件路徑:
/opt/your_app/conf/common.properties
- 文件路徑:
- 將
registry.servers設置為Zookeeper集羣地址 -
格式示例:
registry.servers=zk1:2181,zk2:2181,zk3:2181配置驗證
-
使用zkCli.sh連接Zookeeper驗證配置是否正確
./zkCli.sh -server zk1:2181 -
檢查節點註冊情況:
ls /your_app/nodes - 時間同步配置
詳細時間同步方案
所有節點必須保持時間同步(誤差不超過1秒),建議配置如下:
NTP服務配置步驟
-
安裝NTP服務:
yum install -y ntp -
配置NTP服務器(以阿里雲NTP為例):
ntpdate ntp.aliyun.com -
設置自動同步:
# 設置開機啓動 systemctl enable ntpd # 啓動服務 systemctl start ntpd -
驗證時間同步:
ntpq -p date備選時間同步方案
如果無法連接外網NTP服務器,可配置內網時間服務器:
- 指定一台服務器作為時間服務器
- 其他節點同步該服務器時間
-
配置示例:
ntpdate 192.168.1.100時間同步注意事項
-
建議配置crontab定期同步時間
*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1 -
對於金融等對時間敏感的系統,建議誤差控制在100毫秒以內
常見問題解決方案
數據庫連接失敗排查
- PostgreSQL遠程連接配置
-
檢查
pg_hba.conf文件,確保包含類似配置:host all all 0.0.0.0/0 md5 - 修改後需重啓PostgreSQL服務
- 驗證憑據
-
使用psql命令行測試連接:
psql -h [host] -U [username] -d [database] - 確認密碼輸入正確
- 防火牆檢查
-
檢查節點間5432端口是否開放:
firewall-cmd --list-all -
如需開放:
firewall-cmd --zone=public --add-port=5432/tcp --permanent firewall-cmd --reloadZookeeper連接問題排查
-
基礎連接測試
- 使用telnet測試連接:
* telnet your-zookeeper-server 2181- 成功應顯示"Connected to your-zookeeper-server"
-
日誌檢查
-
查看Zookeeper日誌:
tail -f /var/log/zookeeper/zookeeper.log -
常見問題:
- 磁盤空間不足
- 內存配置過低
- 集羣節點未正確配置
-
服務啓動失敗排查
-
日誌分析
- 檢查主日誌文件:
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 -
Java環境驗證
檢查Java版本:
java -version- 要求:JDK 1.8+
- 檢查JAVA_HOME配置:
echo $JAVA_HOME檢查內存配置:
jmap -heap <pid> -
端口衝突檢查
- 查看端口使用情況:
netstat -tunlp | grep [port]-
默認端口:
- Master Server: 5678
- Worker Server: 1234
- API Server: 12345
原文鏈接:https://blog.csdn.net/NIIT0532/article/details/149217318