DolphinScheduler-3.1.9 資源中心實踐

前言

目前DolphinScheduler最新的穩定版本是 3.1.9 ,基于此做些探索,逐漸深化學習路徑,以便于加深理解。

3.2.1 是最新的版本。目前的穩定版本是 3.1.9


基礎環境:Hadoop3.3, Java 8, Python3, MacOS14.2.1

一、本地偽分布式安裝

為什么要搞偽分布式?因為可以更方便的了解各個組件的作用和生效的細節,初學建議用這種。

偽分布式集群的安裝參考:
https://dolphinscheduler.apache.org/zh-cn/docs/3.1.9/guide/installation/pseudo-cluster

重點說下幾個步驟:
1、MySQL 做為數據源需要新建庫,然后初始化表信息
主要是修改bin/env/dolphinscheduler_env.sh這里:

# for mysql
export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphin319?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=root

2、將 MySQL 驅動放到 master/worker/api/alert 這些服務的 libs目錄下

# 創建庫
mysql> CREATE DATABASE dolphin319 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.02 sec)#初始化數據庫:
?  bin sh upgrade-schema.sh

3、本地先啟動 zookeeper
-> zkServer.sh start
4、啟動偽分布式集群使用 start-all.sh 可能會遇到啟動不了的情況,一種情況有可能類似我這種:

/Users/mac/server/dolphin/master-server/bin/start.sh: line 30: /opt/java/openjdk/bin/java: No such file or directory

這種情況說明我的 Java Home環境未配置,或者未生效使用了默認的設置。
在dolphinscheduler_env.sh 中發現的確如此,曾以為本地已經有了 JAVA_HOME就不需要配置了,但事實上還是需要在配置下。

# JAVA_HOME, will use it to start DolphinScheduler server
export JAVA_HOME=${JAVA_HOME:-/opt/java/openjdk} # 改為本地絕對路徑

5、最后看到

?  bin ./start-all.sh
localhost  Begin status master-server......
master-server  [  RUNNING  ]
End status master-server.
localhost  Begin status worker-server......
worker-server  [  RUNNING  ]
End status worker-server.
localhost  Begin status alert-server......
alert-server  [  RUNNING  ]
End status alert-server.
localhost  Begin status api-server......
api-server  [  RUNNING  ]
End status api-server.# 查看 zk注冊的節點信息 (多節點的情況下就靠它進行 HA 了)
[zk: localhost:2181(CONNECTED) 0] ls /
[dolphinscheduler, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /dolphinscheduler
[lock, nodes]
[zk: localhost:2181(CONNECTED) 2] ls /dolphinscheduler/nodes
[master, worker]
[zk: localhost:2181(CONNECTED) 3] ls /dolphinscheduler/nodes/worker
[192.168.31.219:1234]
[zk: localhost:2181(CONNECTED) 4] ls /dolphinscheduler/nodes/master
[192.168.31.219:5678]

訪問地址:http://localhost:12345/dolphinscheduler/ui/home
賬密:admin/dolphinscheduler123

二、開啟資源中心

參考:
https://dolphinscheduler.apache.org/zh-cn/docs/3.1.9/%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D_menu/%E8%B5%84%E6%BA%90%E4%B8%AD%E5%BF%83_menu

2.1 開啟 HDFS 存儲

參照官網介紹,偽分布式下若想使用本地文件系統只需要修改三點,如下:

# resource storage type: HDFS, S3, NONE
resource.storage.type=HDFS
data.basedir.path=/Users/mac/server/dolphin/resource
resource.storage.upload.base.path=/dolphinscheduler
resource.hdfs.fs.defaultFS=file:///

但不幸的是,它還是會按照 HDFS 的路徑去尋找,未能生效,如下:

[ERROR] 2024-07-06 09:29:37.846 +0000 org.apache.dolphinscheduler.api.exceptions.ApiExceptionHandler:[41] - ServiceException:
org.apache.dolphinscheduler.api.exceptions.ServiceException: 服務端異常: copy /Users/mac/server/dolphin/resource/mac/resources/d6f3a291-6b78-452d-a2bf-821c690453a4 to hdfs /dolphinscheduler/mac/resources/hi.sh fail

采用 HDFS 存儲路徑如下:

data.basedir.path=/Users/mac/server/dolphin/resource
resource.hdfs.root.user=hdfs
resource.storage.upload.base.path=/dolphinscheduler
resource.hdfs.fs.defaultFS=hdfs://localhost:9000

重新啟動集群:
創建一個 shell 測試腳本: hi.sh
在這里插入圖片描述
未啟動之前,我們點擊上傳之后便會報錯連接被拒絕,這符合預期,畢竟回家沒有啟動 hadoop, 啟動之后在次點擊保存之后就正常了,如上面所示。也可以看下文件系統:
在這里插入圖片描述

2.2 測試資源中心文件使用Shell節點任務

資源中心中直接創建所需文件:
在這里插入圖片描述

創建 shell節點類型任務:
在這里插入圖片描述
上線-》運行 -》查看任務實例
在這里插入圖片描述

查看日志:
在這里插入圖片描述
結果符合預期。

2.3 測試資源中心文件使用Python節點任務

  1. 在資源文件中定義 python文件
    在這里插入圖片描述

  2. 使用 python 節點引入對于的模塊

# 導入資源中心的 Python 文件
from date_utils import get_curr_date# 調用方法并打印結果
print(get_curr_date())

在這里我們知道本地執行的 Python 文件和資源定義的文件不在一起,因此無法直接引入,那這里就會出現導入模塊的報錯,如下:

[INFO] 2024-07-06 10:38:02.102 +0000 -  -> Traceback (most recent call last):File "/Users/mac/server/dolphin/resource/exec/process/mac/14182270597920/14186479827104_1/4/4/py_4_4.py", line 5, in <module>from date_utils import get_curr_dateModuleNotFoundError: No module named 'date_utils'

搜索相關資料說可以通過如下方式解決:

import sys
import os# 獲取當前腳本所在目錄
current_dir = os.path.dirname(os.path.abspath(__file__))# 將資源中心的路徑添加到 Python 模塊搜索路徑
resource_center_dir = os.path.join(current_dir, '../resources')
sys.path.append(resource_center_dir)# 調用模塊,執行邏輯...

我在嘗試過后發現并未成功,不過既然知道了文件存儲在了 HDFS 上面那么每次執行的時候先下載到本地然后在使用這種方式執行也未嘗不可,只不過這種方式貌似失去了資源中心的作用。

是否有人知道如何解決這個問題呢?歡迎和我討論~


總結

本文主要講本地基礎環境偽分布式簡單搭建以及遇到的問題,并且以開啟資源中心為例列舉了 shell 腳本和 Python 腳本的示例,其中 shell 腳本沒有問題,主要問題點在 Python,目前來看使用 python任務引入資源中心的 Python 無法成功,后續持續跟進研究,如果你有好的方案煩請和我交流。

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

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

相關文章

學習筆記——動態路由——IS-IS中間系統到中間系統(開銷)

四、IS-IS開銷 1、IS-IS 開銷簡介 在IS-IS協議剛面世時&#xff0c;互聯網網絡結構還非常簡單&#xff0c;因此IS-IS早期的版本中只使用了6bit來描述鏈路開銷&#xff0c;鏈路開銷的取值范圍是1-63。一條路由的開銷范圍只有10bit&#xff0c;取值范圍是0-1023。 隨著計…

前端實現無縫自動滾動動畫

1. 前言: 前端使用HTMLCSS實現一個無縫滾動的列表效果 示例圖: 2. 源碼 html部分源碼: <!--* Author: wangZhiyu <w3209605851163.com>* Date: 2024-07-05 23:33:20* LastEditTime: 2024-07-05 23:49:09* LastEditors: wangZhiyu <w3209605851163.com>* File…

【ubuntu】安裝(升級)顯卡驅動,黑屏|雙屏無法使用問題解決方法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 ubuntu 安裝(升級)顯卡驅動&#xff0c;黑屏|雙屏無法使用問題解決方法 由于項目需要&#xff0c;對顯卡驅動進行升級。升級完就黑屏。。。。&#xff0…

Fast R-CNN(論文閱讀)

論文名&#xff1a;Fast R-CNN 論文作者&#xff1a;Ross Girshick 期刊/會議名&#xff1a;ICCV 2015 發表時間&#xff1a;2015-9 ?論文地址&#xff1a;https://arxiv.org/pdf/1504.08083 源碼&#xff1a;https://github.com/rbgirshick/fast-rcnn 摘要 這篇論文提出了一…

WordPress禁止用戶注冊某些用戶名

不管在任何網站&#xff0c;用戶注冊時都有一個屏蔽非法關鍵詞&#xff0c;就是禁止注冊某些用戶名&#xff0c;原因是因為防止用戶使用一些特定的用戶名&#xff0c;例如管理員、官方等用戶名&#xff0c;還有就是那些攻擊性的詞語了。 加網站添加了屏蔽非法關鍵詞&#xff0…

BAT-致敬精簡

什么是bat bat是windows的批處理程序&#xff0c;可以批量完成一些操作&#xff0c;方便快速。 往往我們可以出通過 winR鍵來打開指令窗口&#xff0c;這里輸入的就是bat指令 這里就是bat界面 節約時間就是珍愛生命--你能想象以下2分鐘的操作&#xff0c;bat只需要1秒鐘 我…

考慮數據庫粒度的設計-提升效率

目錄 概要 場景 設計思路 小結 概要 公開的資料顯示&#xff0c;數據庫粒度是&#xff1a;“在數據庫領域&#xff0c;特別是數據倉庫的設計中&#xff0c;粒度是一個核心概念&#xff0c;它直接影響到數據分析的準確性和存儲效率。粒度的設定涉及到數據的詳細程度和精度&…

【JVM基礎篇】Java的四種垃圾回收算法介紹

文章目錄 垃圾回收算法垃圾回收算法的歷史和分類垃圾回收算法的評價標準標記清除算法優缺點 復制算法優缺點 標記整理算法&#xff08;標記壓縮算法&#xff09;優缺點 分代垃圾回收算法&#xff08;常用&#xff09;JVM參數設置使用Arthas查看內存分區垃圾回收執行流程分代GC算…

【SpringBoot】IDEA查看spring bean的依賴關系

前因&#xff1a;在研究springcloud config組件時&#xff0c;我發現config-server包下的EnvironmentController可以響應客戶端的請求&#xff0c;但EnvironmentController并不在啟動類所在的包路徑下&#xff0c;所以我推測它是作為某個Bean方法在生效&#xff0c;尋找bean的依…

vue-router 源碼分析——9.別名

這是對vue-router 3 版本的源碼分析。 本次分析會按以下方法進行&#xff1a; 按官網的使用文檔順序&#xff0c;圍繞著某一功能點進行分析。這樣不僅能學習優秀的項目源碼&#xff0c;更能加深對項目的某個功能是如何實現的理解。這個對自己的技能提升&#xff0c;甚至面試時…

DAY1: 實習前期準備

文章目錄 VS Code安裝的插件C/CCMakeGitHub CopilotRemote-SSH收獲 VS Code 下載鏈接&#xff1a;https://code.visualstudio.com 安裝的插件 C/C 是什么&#xff1a;C/C IntelliSense, debugging, and code browsing. 為什么&#xff1a;初步了解如何在VS Code里使用C輸出…

https創建證書

需要下載httpd模塊&#xff1a;yum install httpd -y 前提需要先搭建一個虛擬主機來測試證書創建的效果&#xff0c;以下面www.hehe.com為例&#xff0c;可以參考創建&#xff1a; [rootlocalhost conf.d]# vim vhost.conf <directory /www> allowoverride none requi…

關于小愛同學自定義指令執行

1.前言 之前買了小愛同學音響&#xff0c;一直想讓其讓我的生活變得更智能&#xff0c;編寫一些程序來完成一些自動化任務&#xff0c;但是經過搜索發現&#xff0c;官方開發者平臺不能用了&#xff0c;尋找api階段浪費了我很長時間。最后在github 開源項目發現了倆個比較關鍵…

13.SQL注入-寬字節

SQL注入-寬字節 含義&#xff1a; MySQL是用的PHP語言&#xff0c;然后PHP有addslashes()等函數&#xff0c;這類函數會自動過濾 ’ ‘’ null 等這些敏感字符&#xff0c;將它們轉義成’ ‘’ \null&#xff1b;然后寬字節字符集比如GBK它會自動把兩個字節的字符識別為一個漢…

內容營銷專家劉鑫煒:網站排名需考慮哪些SEO優化技巧?

網站排名的SEO優化技巧包括&#xff1a; 1. 關鍵詞研究&#xff1a;了解目標受眾的搜索關鍵詞&#xff0c;將這些關鍵詞合理地應用在網站的標題、描述、正文和標簽中&#xff0c;有助于提高網站排名。 2. 內容優化&#xff1a;創建高質量、有價值的內容&#xff0c;可以吸引搜…

Qt源碼解析之QObject

省去大部分virtual和public方法后&#xff0c;Qobject主要剩下以下成員&#xff1a; //qobject.h class Q_CORE_EXPORT Qobject{Q_OBJECTQ_PROPERTY(QString objectName READ objectName WRITE setObjectName NOTIFY objectNameChanged)Q_DECLARE_PRIVATE(QObject) public:Q_I…

STM32-OC輸出比較和PWM

本內容基于江協科技STM32視頻內容&#xff0c;整理而得。 文章目錄 1. OC輸出比較和PWM1.1 OC輸出比較1.2 PWM&#xff08;脈沖寬度調制&#xff09;1.3 輸出比較通道&#xff08;高級&#xff09;1.4 輸出比較通道&#xff08;通用&#xff09;1.5 輸出比較模式1.6 PWM基本結…

MATLAB常用語句總結7

MATLAB總結7&#xff1a;常見錯誤歸納 本篇專門用于記錄一些應試技巧 文章目錄 MATLAB總結7&#xff1a;常見錯誤歸納前言一、一些小定義和小技巧二、蒙塔卡羅求解方法1.函數的定義2.函數引用3.代碼量較少的蒙塔卡羅 三、函數引用與多變量四、矩陣引用五、非線性函數&#xff…

14-39 劍和詩人13 - 頂級大模型測試分析和建議

????? 隨著對高級語言功能的需求不斷飆升&#xff0c;市場上涌現出大量語言模型&#xff0c;每種模型都擁有獨特的優勢和功能。然而&#xff0c;駕馭這個錯綜復雜的生態系統可能是一項艱巨的任務&#xff0c;開發人員和研究人員經常面臨選擇最適合其特定需求的模型的挑戰。…

哈弗架構和馮諾伊曼架構

文章目錄 1. 計算機體系結構 2. 哈弗架構&#xff08;Harvard Architecture&#xff09; 3. 改進的哈弗架構 4. 馮諾伊曼架構&#xff08;Von Neumann Architecture&#xff09; 5. 結構對比 1. 計算機體系結構 計算機體系結構是指計算機系統的組織和實現方式&#xff0c…