新手教程:用外部 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

準備工作

  1. 安裝和配置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

  1. 下載和解壓
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
  1. 修改配置文件
    修改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
  1. 初始化數據庫
/opt/dolphinscheduler/script/create-dolphinscheduler.sh
  1. 啟動服務
    啟動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

驗證安裝

  1. 檢查進程狀態:
ps -ef | grep dolphinscheduler
  1. 訪問Web UI: 默認端口:12345 訪問URL:http://your-server-ip:12345/dolphinscheduler 默認用戶名/密碼:admin/dolphinscheduler123

集群部署指南

集群模式部署步驟

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

  1. 多節點部署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

配置驗證

  1. 使用zkCli.sh連接Zookeeper驗證配置是否正確
./zkCli.sh -server zk1:2181
  1. 檢查節點注冊情況:
ls /your_app/nodes
  1. 時間同步配置

詳細時間同步方案

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

NTP服務配置步驟

  1. 安裝NTP服務:
yum install -y ntp
  1. 配置NTP服務器(以阿里云NTP為例):
ntpdate ntp.aliyun.com
  1. 設置自動同步:
# 設置開機啟動
systemctl enable ntpd
# 啟動服務
systemctl start ntpd
  1. 驗證時間同步:
ntpq -p
date

備選時間同步方案

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

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

時間同步注意事項

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

常見問題解決方案

數據庫連接失敗排查

  1. PostgreSQL遠程連接配置
  • 檢查pg_hba.conf文件,確保包含類似配置:
host    all             all             0.0.0.0/0               md5
  • 修改后需重啟PostgreSQL服務
  1. 驗證憑據
  • 使用psql命令行測試連接:
psql -h [host] -U [username] -d [database]
  • 確認密碼輸入正確
  1. 防火墻檢查
  • 檢查節點間5432端口是否開放:
firewall-cmd --list-all
  • 如需開放:
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload

Zookeeper連接問題排查

  1. 基礎連接測試

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

    • 查看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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91560.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91560.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91560.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安寶特案例丨AR+AI賦能軌道交通制造:破解人工裝配難題的創新實踐

在軌道交通裝備制造領域&#xff0c;小批量、多品種的生產特性與高度依賴人工經驗的作業模式長期并存&#xff0c;導致效率瓶頸與質量隱患并存。安寶特通過AR&#xff08;增強現實&#xff09;AI&#xff08;人工智能&#xff09;技術融合&#xff0c;在螺栓緊固、內飾裝配、制…

基于LSTM-GRU混合網絡的動態解析:美聯儲維穩政策與黃金單日跌1.5%的非線性關聯

摘要&#xff1a;本文通過構建多因子量化模型&#xff0c;結合自然語言處理&#xff08;NLP&#xff09;技術對美聯儲政策文本進行情緒分析&#xff0c;解析經濟數據、市場情緒及宏觀環境對黃金價格的復合影響機制。研究基于LSTM時間序列預測框架&#xff0c;驗證關鍵事件對金價…

RabbitMQ消息確認機制有幾個confirm?

RabbitMQ 的消息確認機制中&#xff0c;“confirm” 這個詞主要出現在兩個關鍵環節&#xff0c;對應兩種確認&#xff1a;? 兩種 confirm&#xff08;確認&#xff09;機制確認類型觸發方說明Publisher Confirm&#xff08;生產者確認&#xff09;生產者 → Broker消息是否成功…

vue項目啟動時因內存不足啟動失敗

可以使用increase-memory-limit跟npm install cross-env插件npm install increase-memory-limit npm install cross-env安裝后需要在package.json文件中加入如下代碼"scripts": {"fix-memory-limit": "cross-env LIMIT3072 increase-memory-limit&quo…

WEditor:高效的移動端UI自動化腳本可視化編輯器

WEditor&#xff1a;高效的移動端UI自動化腳本可視化編輯器前言一、核心特性與優勢1. 可視化操作&#xff0c;降低門檻2. 跨平臺支持3. 豐富的控件層級展示4. 快捷鍵高效操作5. 開源可擴展二、安裝與環境配置1. 環境準備Android 設備用戶需額外準備ADB 安裝與配置步驟2. 安裝依…

面試高頻題 力扣 283.移動零 雙指針技巧 原地修改 順序保持 C++解題思路 每日一題

目錄零、題目描述一、為什么這道題值得你花幾分鐘看懂&#xff1f;二、題目拆解&#xff1a;提取其中的關鍵點三、明確思路&#xff1a;雙指針的巧妙配合四、算法實現&#xff1a;雙指針的代碼演繹五、C代碼實現&#xff1a;一步步拆解代碼拆解時間復雜度和空間復雜度六、實現過…

arrch64架構下調用pyvista報錯

arrch64架構下調用pyvista報錯 問題 python編程使用到了pyvista&#xff0c;使用conda新建了環境&#xff0c;但是使用的時候報錯 Traceback (most recent call last):File "/home/ztl/MGGBSAR/src/trans_las_3D.py", line 16, in <module>import pyvista as p…

功能強大編輯器

時間限制&#xff1a;1秒 內存限制&#xff1a;128M題目描述你要幫助小可創造一個超級數字編輯器&#xff01;編輯器依舊運行在Linux下&#xff0c;因此你只能通過指令去操控他。指令有五種&#xff1a; In X 表示在光標左側插入一個數字 Del 表示刪除光標左側一個數字 …

【力扣】面試經典150題總結01-數組/字符串

1.合并兩個有序數組&#xff08;簡單&#xff09;要求直接在num1上操作&#xff0c;已經預留了空間&#xff0c;所以直接倒著從大到小插入。當其中一個數組遍歷完&#xff0c;就把另一個數組剩余的部分插入。2.移除元素&#xff08;簡單&#xff09;要求原地移除數組中所有val元…

基于 Hadoop 生態圈的數據倉庫實踐 —— OLAP 與數據可視化(一)

目錄 一、OLAP 與 Impala 簡介 1. OLAP 簡介 2. Impala 簡介 &#xff08;1&#xff09;Impala 是什么 &#xff08;2&#xff09;為什么要使用 Impala &#xff08;3&#xff09;適合 Impala 的使用場景 &#xff08;4&#xff09;Impala 架構 &#xff08;5&#xff…

PyTorch L2范數詳解與應用

torch.norm 是什么 torch.norm(dot_product, p=2, dim=-1) 是 PyTorch 中用于計算張量 L2 范數的函數, 1. 各參數解析 dot_product:輸入張量,在代碼中形狀為 [batch_size, seq_len](每個元素是 token 隱藏狀態與關注向量的點積)。 p=2:指定計算L2 范數(歐幾里得范數)…

循環神經網絡RNN原理精講,詳細舉例!

第一部分&#xff1a;為什么需要RNN&#xff1f;在了解RNN是什么之前&#xff0c;我們先要明白它解決了什么問題。傳統的神經網絡&#xff0c;比如我們常見的前饋神經網絡&#xff08;Feedforward Neural Network&#xff09;或者卷積神經網絡&#xff08;CNN&#xff09;&…

如何用USRP捕獲手機信號波形(中)手機/基站通信

目錄&#xff1a; 如何用USRP捕獲手機信號波形&#xff08;上&#xff09;系統及知識準備 如何用USRP捕獲手機信號波形&#xff08;中&#xff09;手機/基站通信 如何用USRP捕獲手機信號波形&#xff08;下&#xff09;協議分析 四、信號捕獲結果 4.1 時域波形 我懷疑下面…

(LeetCode 面試經典 150 題 ) 155. 最小棧 (棧)

題目&#xff1a;155. 最小棧 思路&#xff1a;棧&#xff0c;時間復雜度0(n)。 在插入棧元素val時&#xff0c;同時加入一個字段&#xff0c;維護插入當前元素val時的最小值即可。 C版本&#xff1a; class MinStack { public:stack<pair<int,int>> st;MinStac…

算法:動態規劃 洛谷 線性狀態動態規劃 P1439【模板】最長公共子序列

思路&#xff1a;因為n<1e5,所以不能O&#xff08;n方&#xff09;的復雜度&#xff0c;所以常規的計算最長公共子序列的方法就不行&#xff0c;不過這題有個特點&#xff0c;就是a&#xff0c;b都是排列&#xff0c;那么a有的數b也有&#xff0c;并且數量還一樣&#xff0c…

Linux跑后臺服務

vi /usr/lib/systemd/system/my_service.service文件配置內容&#xff1a;[Unit] Descriptionmyprogram Afternetwork.target[Service] Userroot Typesimple ExecStart/home/userabc/programs/myprogram/myprogram.out Restarton-failure WorkingDirectory/home/userabc/progra…

Linux基礎練習題1

1、配置網絡地址 請為此虛擬機配置以下網絡參數&#xff1a; 1&#xff09;主機名&#xff1a;chenyu.example.com &#xff08;將chenyu改成自己名字的全拼&#xff09; 2&#xff09;IP 地址&#xff1a;192.168.100.100/24 3&#xff09;默認網關&#xff1a;192.168.100.25…

# 前端開發規范基礎匯總

前端開發規范基礎匯總 命名規范 常用的命名規范 camelCase&#xff08;小駝峰式命名法 —— 首字小寫&#xff09;PascalCase&#xff08;大駝峰式命名法 —— 首字大寫&#xff09;snake_case&#xff08;下劃線命名法&#xff09;kebab-case&#xff08;短橫線命名法&…

jQuery UI Tabs切換功能實例

jQuery UI Tabs切換功能使用jQuery UI實現Tabs切換功能的方法。代碼示例創建了一個包含四個標簽頁&#xff08;按鈕A-D&#xff09;的界面&#xff0c;每個標簽對應不同的內容區域。通過引入jQuery UI庫并調用tabs()方法實現基本切換功能。文章還提到可以通過配置選項修改默認行…

關于為什么stm32的開漏輸出可以讀取引腳的數值

在使用軟件模擬iic通信時&#xff0c;要將SDA線配置為開漏輸出&#xff0c;既然配置為開漏輸出&#xff0c;為什么程序還可以通過SDA線讀取數據&#xff1f;查閱手冊&#xff1a;只說了結論&#xff1a;在開樓模式下&#xff0c;對輸入數據寄存器的讀訪問可以得到IO狀態來看輸出…