轉載自神龍大俠 我是用olphinScheduler 3.2.1版本做源代碼編譯部署(部署方式參考我的另外一篇文檔《源代碼編譯,Apache DolphinScheduler前後端分離部署解決方案》) 二進位文件部署本文也適用,只需要修改相對應的配置即可。 資源管理底層基座替換成hdfs Flink ...
轉載自神龍大俠
我是用olphinScheduler 3.2.1版本做源代碼編譯部署(部署方式參考我的另外一篇文檔《源代碼編譯,Apache DolphinScheduler前後端分離部署解決方案》)
二進位文件部署本文也適用,只需要修改相對應的配置即可。
資源管理底層基座替換成hdfs
Flink程式jar包是在資源中心進行管理的,對於dolphinscheduler系統來說,資源主要包括3類
文件管理
當在調度過程中需要使用到第三方的 jar 或者用戶需要自定義腳本的情況,可以通過在該頁面完成相關操作。可創建的文件類型包括:txt/log/sh/conf/py/java 等。並且可以對文件進行編輯、重命名、下載和刪除等操作。
UDF管理
資源管理和文件管理功能類似,不同之處是資源管理是上傳的 UDF 函數,文件管理上傳的是用戶程式,腳本及配置文件。
任務組管理
任務組主要用於控制任務實例併發,旨在控制其他資源的壓力(也可以控制 Hadoop 集群壓力,不過集群會有隊列管控)。您可在新建任務定義時,可配置對應的任務組,並配置任務在任務組內運行的優先順序。用戶僅能查看有許可權的項目對應的任務組,且僅能創建或修改具有寫許可權的項目對應的任務組。
DolphinScheduler支持將資源存儲在api-server本地文件系統或者hadoop分散式文件系統hdfs上面(也可以支持s3,我用的hdfs),生產環境把資源存在本地文件系統是不可靠的,所以需要將底層介質存儲平臺改成hdfs。
對於DolphinScheduler的核心組件,
- 資源的管理是在api-server
- 資源的使用是work-server
所以如果支持hdfs的配置修改需要對api-server和worker-server重新部署。
如果要支持hdfs需要修改(dolphinscheduler-common中的common.properties)如下配置:
resource.storage.upload.base.path=/dolphinscheduler //也可不修改
resource.hdfs.root.user=
resource.hdfs.fs.defaultFS=
hadoop.security.authentication.startup.state=true
java.security.krb5.conf.path= //krb5.conf配置文件
login.user.keytab.username=
login.user.keytab.path=
修改完之後,重新編譯api-server, work-server部署,就可以修改資源管理文件系統的底座了。
目前DolphinScheduler支持創建文件夾和上傳文件的功能,實際使用如下圖所示:
備註:
- 目前admin用戶可以看到所有的文件;
- 如果新建一個用戶的話,是看不到其他用戶創建的文件
Worker支持Flink local模式執行任務
我以WordCount.jar包作為例子,具體可以替換成特定任務的jar包。
WordCount任務是flink的example代碼,類似第一個hello world程式,在二進位包examples目錄下。有batch和streaming兩種任務類型的jar包
在worker機器上部署flink環境(使用1.19版本)
我用的bin二進位部署文件,下載地址為
https://flink.apache.org/2024/06/14/apache-flink-1.19.1-relea...
配置Flink path可以修改機器的bash_profile
文件,也可以修改DolphinScheduler的dolphinscheduler_env.sh
配置文件。
- bash_profile
- dolphinscheduler_env.sh
租戶的概念
DolphinScheduler支持多個租戶,不同的租戶之間資源是隔離,租戶的實現機制是根據linux上用戶來做資源隔離,如下圖所示:
所以Flink的環境配置在具體的實施情況可以支持一些非常靈活的特性支持,比如可以在worker機器上創建不同的user:
- flink119
- flink108
- flink112
不同user配置不同的Flink版本環境信息,這樣Flink任務可以根據選擇租戶的不同來支持Flink多版本特性的支持。
上傳Flink任務jar包
我這直接使用Flink的example jar
包了,/batch/
目錄下的WrodCount.jar
。
註意,非常重要,執行的時候,需要選擇正確的租戶。
否則,要不找不到Flink,要不對於版本差異的代碼 會有不符合預期的執行情況噢。
Flink任務運行對於batch和streaming任務有不同的效果,streaming任務會一直執行,batch任務執行完之後就退出了。
可以在任務實例查看flink任務的執行日誌,如下圖所示:
也可以將任務的執行情況,發送到釘釘:
Flink on yarn支持
Flink on yarn和Flink local對於hello world程式來說沒有什麼特別的不同,只是需要worker機器本身的部署用戶(我的是deploy用戶)配置好hadoop環境。
配置好 $HADOOP_HOME
和$HADOOP_CLASSPATH
即可。
flink on yarn運行效果看圖:
Yarn中application運行日誌:
原文鏈接:https://segmentfault.com/a/1190000045101168
本文由 白鯨開源 提供發佈支持!