Flink運行時的實現細節

一、Flink集群中各角色運行架構

先說Flink集群中的角色吧,有三個分別是客戶端(Client)、JobManager、TaskManager。

客戶端負責接收作業任務并進行解析,將解析后的二進制數據發送給JobManager;JobManager是作業調度中心,負責對所有作業進行調度;TaskManager是作業執行的工作節點,負責執行具體的工作。其大致流程為:

那么更具體的各個角色的功能是如下圖的:

三個角色之間都是通過Actor通信系統進行通信的。

客戶端的具體功能就是:解析腳本提交過來的參數并進行封裝,然后將任務提交給JobManager。

JobManager中又分為了三個組件:分發器、JobMaster、資源管理器。分發器負責接收任務并為每一個任務開啟一個新的JobMaster組件;JobMaster負責處理單個的作業,在作業提交后,他會將JobGraph轉化為一個物理層面的數據流圖,然后向資源管理器發送請求獲取資源,一旦獲取到資源以后,JobMaster就會將這個數據流圖發送到TaskManager上去執行。資源管理器就是接收JobMaster的資源請求然后去向TaskManager申請資源。

二、并行度

在執行作業時,要處理的數據量很大,可以將一個算子操作復制多分,多個算子共同的執行。那么一個算子的子任務的個數就是這個算子的并行度。而一個程序的并行度是這個程序中所有算子中的最大并行度的值。

三、算子鏈

在介紹算子鏈之前應該先介紹不同算子之間的數據流通形式,有一對一形式和重分區形式。一對一形式就是數據由前一個算子直接流向下一個算子;重分區就是數據從前一個算子會進行重新分區的操作之后再發給后面的算子。

算子鏈就是對并行度相同的且是一對一的算子進行的合并操作,合并之后兩個算子就在同一個子任務中執行。這樣做的好處就是可以減少不同線程之間的數據交換的時延。

四、任務槽(slot)

Flink中的每一個TaskManager都是一個JVM進程,他可以啟動多個線程來執行任務。但是JVM進程能申請到的資源是有限的,它能夠讓多少個任務來執行呢?每個任務又能分配多少資源呢?這些都是TaskManager設計時的問題。為了解決這些問題,TaskManager在設計時以任務槽(slot)為最小資源分配單位來向線程任務分配資源。這樣每個TaskManager就是最多讓slot的數量的任務來執行。

任務槽(slot)和并行度都和程序的并行執行有關系。任務槽代表了程序能并行執行的最大程度,是靜態的概念;并行度是程序在執行過程中的實際并發程度,是動態的概念。所以必須要求開啟的TaskManager的總的任務槽的數量要比設置的并行度的值要大。

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

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

相關文章

思科、華為、華三如何切換三層端口?

三層交換機融合了二層交換技術與三層轉發技術,具備強大的網絡功能。主流廠商(思科、H3C、華為)的三層交換機均支持二層端口與三層端口的相互切換,但具體命令存在差異。本文將詳細介紹三大廠商設備的端口切換方法及相關知識。一、各…

springboot的基礎要點

Spring Boot 的核心設計理念是 ??"約定優于配置"??(Convention Over Configuration),旨在簡化 Spring 應用的初始搭建和開發過程。以下是需要掌握的核心基礎要點:?一、核心機制??自動配置 (Auto-Configuration)?…

lesson36:MySQL從入門到精通:全面掌握數據庫操作與核心原理

目錄 一、引言:為什么選擇MySQL? 二、MySQL安裝與登錄配置 2.1 環境準備 2.2 登錄指令詳解 三、數據庫核心操作 3.1 數據庫生命周期管理 3.2 數據庫存儲引擎選擇 四、數據表設計與操作 4.1 表結構創建(含數據類型詳解) …

Spring源碼解析 - SpringApplication run流程-prepareContext源碼分析

prepareContext源碼分析 private void prepareContext(DefaultBootstrapContext bootstrapContext, ConfigurableApplicationContext context,ConfigurableEnvironment environment, SpringApplicationRunListeners listeners,ApplicationArguments applicationArguments, Bann…

HIS系統:醫院信息化建設的核心,采用Angular+Java技術棧,集成MySQL、Redis等技術,實現醫院全業務流程管理。

HIS系統在醫院信息化建設中扮演著核心的角色。它是一個綜合性的信息系統,旨在管理和運營醫院的各種業務,包括門診、住院、財務、物資、科研等。技術細節:前端:AngularNginx后臺:JavaSpring,SpringBoot&…

深度學習-卷積神經網絡-LeNet

卷積神經網絡是一種專門用于處理具有網格結構數據(如圖像、音頻等)的深度學習模型。它通過卷積層自動提取數據中的特征,利用局部連接和參數共享的特性減少了模型的參數數量,降低了過擬合的風險,同時能夠有效地捕捉數據…

【Java項目與數據庫、Maven的關系詳解】

Java項目與數據庫、Maven的關系詳解 一、Java項目是否都需要連接本地數據庫? 不一定,這取決于項目類型和需求: 1. 需要數據庫的項目類型項目類型數據庫作用典型場景Web應用存儲用戶數據/業務數據電商系統、CMS服務端程序持久化數據金融交易系…

兩個Maven工程,使用idea開發,工程A中依賴了工程B,改了工程B,工程A如何獲取最新代碼

兩個Maven工程,使用idea開發,工程A中依賴了工程B,改了工程B,工程A如何獲取最新代碼 如果工程B的版本是快照,那么如下。 步驟一 工程B 執行 clean package install deploy 步驟二 工程A 刷新Maven

奧比中光與地平線、地瓜機器人達成戰略合作,攜手推動機器人智能化

摘要:機器人“慧眼”與“智腦”強強聯合!8月11日,奧比中光與地平線及其控股子公司地瓜機器人在北京簽訂合作協議,雙方將在機器人智能化領域展開深度合作,充分發揮各自的技術與產品優勢,攜手推動機器人產業的…

【Linux】Tomcat

Tomcat簡介Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用服務器,在中小型系統和 并發訪問用戶不是很多的場合下被普遍使用,Tomcat 具有處理HTML頁面的功能,它還是一個Servlet和 JSP容器Tomcat的使用安裝ja…

Putting it all together 將所有內容整合在一起

官方鏈接 https://www.youtube.com/watch?vAa_FAA3v22g&t1s Task1 Putting It All Together 將所有內容整合在一起 圖片版 文字版 Putting It All Together 將所有內容整合在一起 From the previous modules, youll have learned that quite a lot of things go on b…

Python 閉包詳解:從變量作用域到實戰案例

一、變量作用域基礎在 Python 中,變量根據作用范圍可分為三類:全局變量:定義在函數外部的變量,作用范圍是整個程序。如果在函數內部需要修改全局變量,必須使用global關鍵字聲明。局部變量:定義在函數內部的…

Docker 跨主機容器之間的通信macvlan

默認一個物理網卡,只有一個物理mac地址,虛擬多個mac地址 缺點:每次需要手動配置ip地址,容易ip地址沖突。類似于保存到execl表格里面。 兩臺物理機: docker-01和docker-02 創建macvlan網絡 [rootdocker-01 ~]# docker n…

android 換膚框架詳解1-換膚邏輯基本

android 換膚框架詳解1-換膚邏輯基本-CSDN博客 android 換膚框架詳解2-LayoutInflater源碼解析-CSDN博客 android 換膚框架詳解3-自動換膚原理梳理-CSDN博客 換膚框架流程 1,通過AssetManager獲取換膚的資源文件 2,通過原文件中的resId獲取到res名稱…

NEON性能優化總結

轉自 NEON優化:性能優化經驗總結-CSDN博客 NEON優化:性能優化經驗總結 1. 什么是 NEON Arm Adv SIMD 歷史 2. 寄存器 3. NEON 命名方式 4. 優化技巧 5. 優化 NEON 代碼(Armv7-A內容,但區別不大) 5.1 優化 NEON 匯編代碼 …

計算機網絡摘星題庫800題筆記 第2章 物理層

第2章 物理層2.1 物理層概述題組闖關1.采用以下哪種設備,可以使數字信號傳輸得更遠 ( )。 A. 放大器 B. 中繼器 C. 網橋 D. 路由器1.【參考答案】B 【解析】選項 A 放大器只是單純地放大信號、抑制噪音和干擾。選項 B 中繼器是把一根線纜中的電或者光信號傳遞給另一…

導入文件到iPhone實現

我們有時候開發需要加載一些自己的文件&#xff0c;這個時候就需要導入文件到iPhone等設備。在info里面open as source code&#xff0c;加入如下配置&#xff1a;<!-- 開啟 iTunes / Finder 文件共享 --><key>UIFileSharingEnabled</key><true/>或者o…

Ubuntu Server系統安裝磁盤分區方案

最近打算把家里的舊電腦利用起來&#xff0c;裝上Ubuntu Server 24.04.3 LTS作為一個家用NAS服務器&#xff0c;但是給舊電腦安裝系統時遇到了一些問題&#xff0c;遂記錄下來 GPT分區與MBR分區 GPT 指的是 GUID Partition Table&#xff08;全局唯一標識分區表&#xff09;&am…

1小時 MySQL 數據庫基礎速通

目錄 一、MySQL安裝配置 1、下載mysql 2、下載mysql-shell 二、MySQL基本概念 1. 數據庫&#xff08;Database&#xff09; 2. 表&#xff08;Table&#xff09; 3. 數據類型&#xff08;Data Type&#xff09; 4. 主鍵&#xff08;Primary Key&#xff09; 5. 索引&am…

HTTP應用層協議-長連接

HTTP應用層協議-長連接 關于 connection 報頭 HTTP 中的 Connection 字段是 HTTP 報文頭的一部分&#xff0c;它主要用于控制和管理客戶端與服務器之間的連接狀態 核心作用 ? 管理持久連接&#xff1a;Connection 字段還用于管理持久連接&#xff08;也稱為長連接&#xff09;…