Apache DolphinScheduler大規模任務調度系統對大數據實時Flink任務支持

来源:https://www.cnblogs.com/DolphinScheduler/p/18392928
-Advertisement-
Play Games

轉載自神龍大俠 我是用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支持創建文件夾和上傳文件的功能,實際使用如下圖所示:

file

備註:

  • 目前admin用戶可以看到所有的文件;
  • 如果新建一個用戶的話,是看不到其他用戶創建的文件

我以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

file

  • dolphinscheduler_env.sh

file

租戶的概念

DolphinScheduler支持多個租戶,不同的租戶之間資源是隔離,租戶的實現機制是根據linux上用戶來做資源隔離,如下圖所示:

file

所以Flink的環境配置在具體的實施情況可以支持一些非常靈活的特性支持,比如可以在worker機器上創建不同的user:

  • flink119
  • flink108
  • flink112

不同user配置不同的Flink版本環境信息,這樣Flink任務可以根據選擇租戶的不同來支持Flink多版本特性的支持。

上傳Flink任務jar包

我這直接使用Flink的example jar包了,/batch/目錄下的WrodCount.jar

file

註意,非常重要,執行的時候,需要選擇正確的租戶。

否則,要不找不到Flink,要不對於版本差異的代碼 會有不符合預期的執行情況噢。

file

Flink任務運行對於batch和streaming任務有不同的效果,streaming任務會一直執行,batch任務執行完之後就退出了。

可以在任務實例查看flink任務的執行日誌,如下圖所示:

file

也可以將任務的執行情況,發送到釘釘:

file

Flink on yarn和Flink local對於hello world程式來說沒有什麼特別的不同,只是需要worker機器本身的部署用戶(我的是deploy用戶)配置好hadoop環境。

配置好 $HADOOP_HOME$HADOOP_CLASSPATH即可。

flink on yarn運行效果看圖:

file

Yarn中application運行日誌:

file

原文鏈接:https://segmentfault.com/a/1190000045101168

本文由 白鯨開源 提供發佈支持!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Multipass 虛擬機 ssh 登錄(密碼方式) [!NOTE] 以 Ubuntu 24,04 LTS 為例 準備工作 為了演示新建一個示例虛擬機。 multipass launch --name vm01 -c 4 -m 4G -d 100G --network bridged 操作步驟 進入 ...
  • 實踐環境 CentOS-7-x86_64-DVD-2009 簡介 Firewalld是一種簡單的、有狀態的、基於區域(zone-based)的防火牆。策略和區域用於組織防火牆規則。網路在邏輯上被劃分為多個區域,它們之間的流量可以通過策略進行管理。 查看防火牆狀態 # service firewall ...
  • STM32 與 linux 雙向串口通信實驗 本文記錄STM32 與 linux 雙向串口通信,包含stm32發送、Linux阻塞式接收;Linux發送,STM32阻塞式接收;本實驗的目的在於調通數據鏈路,為之後使用奠定基礎。 實驗平臺為: STM32方面用的是STM32H723ZGT6為核心的開發 ...
  • Linux 腳本文件 shebang (!#) 行最大為何只有 128 位元組?為何最多只能指定一個參數?如何將這些參數排列在參數列表前面?本文通過閱讀 Linux 內核源碼,一一為你揭秘 ...
  • 前言 將一個處於睡眠狀態或者新創建的進程加入就緒隊列時會產生喚醒搶占檢查,被喚醒的任務一般期望能夠立刻執行,發生搶占能夠滿足被喚醒任務的實時性需求。CFS調度器的喚醒搶占能否成功會受到sysctl_sched_wakeup_granularity的影響,該參數能控制喚醒搶占發生的概率。頻繁的搶占有可 ...
  • FFmpeg是一個開源的多媒體框架,它可以處理各種音頻和視頻格式的轉換、解碼、編碼和流處理。它提供了一套豐富的庫和工具,廣泛應用於視頻點播、直播、多媒體處理、游戲開發等領域。 FFmpeg的主要組件包括: libavformat - 用於音頻和視頻的多媒體容器的多路復用和解復用。支持多種格式,如MP ...
  • 寫在前面 今天繼續學習redis後面的知識。 Redis 哨兵機制 哨兵 Sentinel 機制 Sentinel(哨兵)是 Redis 的高可用性解決方案。由一個或多個 Sentinel 實例組成的 Sentinel 系統可以監視任意多個主伺服器,以及這些主伺服器屬下的所有從伺服器。當被監視的主服 ...
  • 我們欣喜地宣佈,Apache SeaTunnel 2.3.7 版本現已正式發佈!作為一個廣受歡迎的下一代開源數據集成工具,Apache SeaTunnel 一直致力於為用戶提供更加靈活、高效的數據同步和集成能力。此次版本更新不僅引入瞭如 LLM(大型語言模型)數據轉換支持、增強的 SQL 支持和新連 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...