本文將帶你一步步通過外部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.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
- 初始化數據庫
/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 --reload
Zookeeper連接問題排查
-
基礎連接測試
- 使用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