
DolphinScheduler 數據源配置避坑指南【免費下載鏈接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code項目地址: https://gitcode.com/GitHub_Trending/dol/dolphinschedulerApache DolphinScheduler 是分布式可視化的工作流調度系統數據源配置是新手上手時第一個踩坑重災區默認 H2 重啟就丟數據、JDBC 驅動放錯目錄就報缺類、元數據庫和數據源中心又很容易搞混。這篇文章把這兩層數據源配置一次講透元數據庫怎么初始化、驅動放哪、數據源中心怎么建連接全程給到可以直接照抄的步驟讀完你就能把環境從默認配置切到生產可用。數據源配置到底在配什么先分清兩層概念這一節解決最基礎的困惑為什么安裝時要配一個數據庫界面里又讓你建數據源DolphinScheduler 的數據源配置其實分兩層元數據庫系統自身數據的存放地——工作流定義、任務實例、用戶與權限都在里面。Standalone 模式默認用內存的H2生產部署要換成 MySQL 或 PostgreSQL數據源中心界面里管理的業務數據庫供 SQL 等任務類型讀寫數據支持 MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER 等二十多種類型。兩層完全獨立元數據庫是系統的戶口本數據源中心是你任務對接的外部倉庫。本文的順序就是先把元數據庫搞對最后再回來建數據源中心的連接。官方數據源配置文檔覆蓋了下文所有步驟遇到細節不一致時以它為準。數據源中心建出來的數據源存在t_ds_datasource表里它和用戶t_ds_user、租戶t_ds_tenant之間的授權關系也在這張圖里——這也解釋了為什么數據源要先創建、授權才能在任務里被選用。H2 能撐多久什么時候該切到 MySQL 或 PostgreSQL這一節給出選型標準什么場景下可以照用默認 H2什么場景下必須換 MySQL 或 PostgreSQL。體驗、驗證想法Standalone 默認 H2 就夠了零數據庫部署一條命令起服務工作流上量、需要數據持久化把元數據庫切成 MySQL 或 PostgreSQL生產集群分布式部署必須用 MySQL 或 PostgreSQL沒有討論空間。為什么 H2 不建議長期用官方文檔說得很直接Standalone 僅建議 20 個以下工作流使用且它采用內存式 H2重啟或停止服務就會清空全部數據。?? 如果你把 H2 里的數據當生產數據用了重啟后一片空白不用驚訝這就是 H2 的工作方式。想讓數據活過重啟唯一的路是把元數據庫切到外部數據庫。Standalone 的適用范圍與限制細節見Standalone 安裝文檔。所以路線很清楚先用 H2 體驗要持久化就按下一節把 Standalone 切到 MySQL要上生產就按再下一節的分布式流程初始化數據庫。5 分鐘把 Standalone 元數據庫切到 MySQL這一節是最小可用路徑三步完成從 H2 到 MySQL 的切換切換后數據重啟不丟。第一步下載驅動并放對位置元數據庫要用 MySQL需要手動下載mysql-connector-java 8.0.16驅動放到standalone-server/libs/standalone-server/目錄。發行包里沒有帶 MySQL 驅動許可不兼容這一步省不了否則啟動后連不上 MySQL。第二步設置環境變量在命令行設置下面五個環境變量把{address}、{user}、{password}替換成你的真實數據庫地址、用戶名和密碼export DATABASEmysql export SPRING_PROFILES_ACTIVE${DATABASE} export SPRING_DATASOURCE_URLjdbc:mysql://{address}/dolphinscheduler?useUnicodetruecharacterEncodingUTF-8useSSLfalse export SPRING_DATASOURCE_USERNAME{user} export SPRING_DATASOURCE_PASSWORD{password}用 PostgreSQL 的話只需把DATABASE改成postgresql、URL 換成jdbc:postgresql://{address}:5432/dolphinscheduler其余變量不變。第三步重啟生效并驗證重啟 standalone-server此時工作流定義、任務記錄等數據都會落到 MySQL重啟或停止服務都不會再清空數據。驗證也很簡單登錄 MySQL 看dolphinscheduler庫里是否有一批t_ds_前綴的表有就說明切換成功。如果啟動后報連接失敗按順序查三件事驅動目錄對不對、賬號密碼對不對、端口通不通。分布式部署元數據庫初始化的完整流程這一節是生產級路徑建庫、配連接、初始化表結構三步拿到一個干凈的元數據庫。建庫和專用賬號以 MySQL 5.6/5.7 為例登錄 mysql 客戶端執行CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO {user}% IDENTIFIED BY {password}; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO {user}localhost IDENTIFIED BY {password}; FLUSH PRIVILEGES;{user}和{password}換成實際要用的賬號建議給 DolphinScheduler 建專用賬號而不是直接給 root。版本和數據庫之間的差異只有幾處MySQL 8.0GRANT不再支持IDENTIFIED BY要先CREATE USER {user}% IDENTIFIED BY {password}再單獨執行GRANTlocalhost 同理PostgreSQL建庫不用指定字符集建完用戶后還要ALTER DATABASE dolphinscheduler OWNER TO {user};并向$PGDATA/pg_hba.conf追加一行訪問權限格式為host dolphinscheduler {user} {ip} md5{ip}替換為 DS 集群服務器的地址段最后pg_ctl reload讓配置生效。配置連接環境變量還是上一節那五個環境變量把地址換成真實地址即可用 PostgreSQL 時把DATABASE改成postgresql、URL 換成jdbc:postgresql://127.0.0.1:5432/dolphinscheduler。?? MySQL URL 里有個時區坑別用CST這類模糊時區標識符調度觸發時間可能整體偏移。建議顯式加serverTimezoneAsia/Shanghai。初始化表結構跑一條官方腳本它會自動創建全部元數據表這個腳本以后升級表結構還要用別丟bash tools/bin/upgrade-schema.sh到這里元數據庫就緒按分布式安裝的步驟拉起各服務即可。JDBC 驅動放錯目錄會出什么問題這一節是社區反饋里最頻繁的坑服務啟動報缺類、數據源測試連接直接報錯根源幾乎都是驅動沒放對地方。先說清楚為什么官方包不帶這些驅動MySQL、Oracle、SQL Server 這類數據源的 JDBC 驅動與Apache LICENSE V2 不兼容所以發行包無法內置必須自己下載對應版本的 jar。關鍵是兩個場景、兩套目錄搞混了白忙元數據庫用 MySQL驅動要放進api-server/libs、alert-server/libs、master-server/libs、worker-server/libs、tools/libs五個目錄漏放哪個對應服務就連不上元數據庫數據源中心用 MySQL/Oracle/SQL Server放進api-server/libs和worker-server/libs然后重啟api-server、worker-server生效容器部署也一樣把驅動掛載到這兩個路徑再重啟。?? 版本有講究把 MySQL 當元數據庫時驅動只支持8.0.16 及以上版本只是數據源中心里用則對驅動版本沒有要求。排查思路永遠是那一條確認 jar 在正確的libs目錄、確認版本符合要求、重啟對應服務然后在啟動日志里找驅動加載信息。數據源中心3 步從建連接到測試通過最后一節讓數據源在界面里真正可用建好之后SQL 任務里直接就能選。第一步選擇數據源類型進入數據源中心點創建數據源在下拉框里選類型。最常用的就是 MySQL、POSTGRESQL、HIVE/IMPALA、SPARK、CLICKHOUSE、ORACLE、SQLSERVER 這幾類。第二步填寫連接信息以 MySQL 為例必填項是IP、Port、User Name、Password、Database Name還有額外的連接參數就寫在jdbc connect parameters里按 key-value 格式填寫。第三步測試連接后保存點測試連接——只有測試通過后才能保存數據源這是系統的硬規則。測試不過時按順序查驅動是否按上一節放置了MySQL/Oracle/SQL Server 等類型必須IP、端口是否可達賬號權限是否足夠jdbc connect parameters的 JSON 格式是否寫對。各類型數據源的完整配置項參考官方MySQL 數據源文檔以及同目錄下的其他文檔即可。連接建好并保存后整套數據源配置就算落地了——之后創建 SQL 任務時選中這個數據源就能直接跑工作流?!久赓M下載鏈接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code項目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考