【Flink】Flink SQL

一、Flink 架構

Flink 架構 | Apache Flink

二、設置TaskManager、Slot和Parallelism

在Apache Flink中,設置TaskManager、Slot和Parallelism是配置Flink集群性能和資源利用的關鍵步驟。以下是關于如何設置這些參數的詳細指南:

1. TaskManager 設置

TaskManager是Flink集群中負責執行作業的節點。關于TaskManager的設置,主要關注其數量和資源分配。

  1. TaskManager數量:根據集群規模和作業需求確定TaskManager的數量。例如,如果集群資源充足且作業并發度高,可以增加TaskManager的數量以提高處理能力。
  2. 資源分配:為每個TaskManager分配適當的內存和CPU資源。這取決于集群的硬件配置和作業的資源需求。確保為TaskManager分配足夠的資源以確保作業可以高效運行。

2. Slot 設置

Slot是TaskManager上用于執行作業的資源單元。一個Slot可以并行運行一個作業的子任務。

  1. Slot數量:每個TaskManager上的Slot數量決定了該TaskManager可以并行運行的作業子任務數。Slot數量通常根據TaskManager的內存和CPU資源來確定。例如,如果TaskManager有2GB內存和1個CPU核心,并且每個Slot需要1GB內存和0.5個CPU核心,則該TaskManager可以設置2個Slot。
  2. 資源分配:每個Slot會分配到一定的內存和CPU資源。這些資源應該根據作業的需求和TaskManager的總資源進行合理分配。

3. Parallelism 設置

Parallelism決定了Flink作業的并行度,即作業可以并行執行的程度。

  1. 默認并行度:在Flink配置文件中,可以指定默認并行度(parallelism.default)。如果作業沒有指定并行度,則使用默認并行度。
  2. 作業級并行度:在提交作業時,可以通過命令行參數(-p)或編程API(env.setParallelism())為整個作業設置并行度。這將作為作業的默認并行度,但可以被單個算子的并行度設置覆蓋。
  3. 算子級并行度:在Flink程序中,可以為每個算子單獨設置并行度。這可以通過在算子鏈的末尾調用setParallelism()方法來實現。算子級并行度的優先級高于作業級并行度和默認并行度。

4. 總結

  • 設置TaskManager的數量和資源分配以適應集群規模和作業需求。
  • 根據TaskManager的資源為每個TaskManager設置適當的Slot數量。
  • 根據作業的需求和集群的資源設置作業的默認并行度、作業級并行度和算子級并行度。

?5. 阿里云 實時計算Flink版 參數示例?


三、Flink SQL性能調優與配置

在使用Flink SQL進行數據處理時,性能調優是確保系統高效運行的關鍵。以下是一些常見的調優配置和策略,它們可以幫助您優化Flink SQL作業的性能。

1. 微批處理(Mini-Batch)

Flink SQL支持微批處理,通過組合多個小批次來減少任務調度的開銷。當啟用微批處理時,Flink會嘗試將多個小批次合并成一個較大的批次進行處理。

# 啟用微批處理
table.exec.mini-batch.enabled: 'true'
# 設置允許的最大延遲時間,超過該時間將不再等待更多數據而直接發送當前批次
table.exec.mini-batch.allow-latency: 2s

2. 算子鏈優化(Operator Chaining)

算子鏈優化是一種減少任務間數據傳輸開銷的策略。通過將多個算子鏈接在一起,可以減少序列化和反序列化的開銷,并提高數據傳輸的效率。

# 默認情況下,Flink會嘗試自動進行算子鏈優化
# 如果需要禁用此功能,可以設置為false
pipeline.operator-chaining: 'false'

注意:通常建議保持算子鏈優化開啟('true'),以獲得更好的性能。

3. Hash Shuffle

在Flink中,Keyed Streams使用hash shuffle策略將數據分發到下游的并行任務。這有助于確保具有相同key的數據被發送到同一個下游任務,從而進行高效的聚合或連接操作。

對于Flink SQL中的sink,如果其接受的是Keyed Stream,并且需要確保數據的順序性,可以使用FORCE關鍵字來強制使用hash shuffle。

# 強制使用hash shuffle
table.exec.sink.keyed-shuffle: FORCE

注意:在Flink SQL中,您通常不需要手動配置這個參數,因為Flink會根據作業的特性和需求自動選擇合適的shuffle策略。

4. Hash Join

Hash Join是一種基于哈希表的連接算法,適用于等值連接場景。它通過將一個表的數據加載到哈希表中,然后掃描另一個表并與哈希表中的數據進行比較來實現連接。

在Flink SQL中,可以使用Hint(提示)來建議優化器使用Hash Join。但是,請注意,這只是一個建議,優化器可能會根據實際情況選擇其他連接策略。

SELECT /*+ SHUFFLE_HASH(t1,t2) */ * FROM table1 t1 JOIN table2 t2 ON t1.key = t2.key

5. 設置Sink的并行度

Sink的并行度決定了數據寫入外部系統時的并行度。可以根據外部系統的性能和Flink作業的需求來設置合適的并行度。

在Flink SQL中,可以通過DDL語句或API來設置Sink的并行度。以下是一個示例DDL語句:

CREATE TABLE sink_table (
... -- 定義表結構
) WITH (
... -- 其他配置選項
'sink.parallelism' = '4' -- 設置并行度為4
);

或者,在Flink作業提交時通過API來動態設置Sink的并行度。

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

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

相關文章

【漏洞復現】致遠互聯FE協作辦公平臺——SQL注入

聲明:本文檔或演示材料僅供教育和教學目的使用,任何個人或組織使用本文檔中的信息進行非法活動,均與本文檔的作者或發布者無關。 文章目錄 漏洞描述漏洞復現測試工具 漏洞描述 致遠互聯FE協作辦公平臺是一個專注于協同管理軟件領域的數智化運…

關于內存和外存文件不同字符集下占用空間大小問題

關于內存和外存不同字符集下文件占用空間大小問題 存儲(外存)的文件中的字符: ASCII:每個字符占用1個字節,用來存儲英文字符和常用標點符號。ISO-8859-1:每個字符占用1個字節,向下兼容ASCII。G…

DS18B20單總線數字溫度傳感器國產替代MY18E20 MY1820 MY18B20Z MY18B20L(一)

前言 DS18B20是全球第一個單總線數字溫度傳感器,推出時間已經超過30年,最早由美國達拉斯半導體公司推出,2001年1月,美信以25億美元收購達拉斯半導體(Dallas Semiconductor),而美信在2021年8月被…

DM達夢數據庫存儲過程

💝💝💝首先,歡迎各位來到我的博客,很高興能夠在這里和您見面!希望您在這里不僅可以有所收獲,同時也能感受到一份輕松歡樂的氛圍,祝你生活愉快! 💝&#x1f49…

RDMA通信2:RDMA基本元素和組成 通信過程元素關系解析 視頻教程

哈哈哈,今天我們把下面這張圖理解了,我們的任務就完成了! 視頻教程在這:1.2 RDMA基本元素和組成 通信過程元素關系解析_嗶哩嗶哩_bilibili 一、WQ和WQE 工作隊列元素(work queue element,WQE):是軟件下發給硬件的任務…

Apache Ranger 2.4.0 集成Hive 3.x(Kerbos)

一、解壓tar包 tar zxvf ranger-2.4.0-hive-plugin.tar.gz 二、修改install.propertis POLICY_MGR_URLhttp://localhost:6080REPOSITORY_NAMEhive_repoCOMPONENT_INSTALL_DIR_NAME/BigData/run/hiveCUSTOM_USERhadoop 三、進行enable [roottv3-hadoop-01 ranger-2.4.0-hive…

什么是TOGAF架構框架的ADM方法?

ADM是架構開發方法( Architecture Development Method),為開發企業架構所要執行的各個步驟以及它們質檢的關系進行詳細的定義,它是TOGAF規范中最為核心的內容。 ADM的具體步驟: 預備階段(Preliminary Phas…

求職刷題力扣 DAY38動態規劃 part04

1. 1049. 最后一塊石頭的重量 II 有一堆石頭&#xff0c;用整數數組 stones 表示。其中 stones[i] 表示第 i 塊石頭的重量。 每一回合&#xff0c;從中選出任意兩塊石頭&#xff0c;然后將它們一起粉碎。假設石頭的重量分別為 x 和 y&#xff0c;且 x < y。那么粉碎的可能…

STM32第十三課:DMA多通道采集光照煙霧

文章目錄 需求一、DMA&#xff08;直接存儲器存取&#xff09;二、實現流程1.時鐘使能2.設置外設寄存器地址3.設置存儲器地址4.設置要傳輸的數據量5.設置通道優先級6.設置傳輸方向7.使通道和ADC轉換 三、數據處理四、需求實現總結 需求 通過DMA實現光照強度和煙霧濃度的多通道…

【SkiaSharp繪圖13】SKCanvas方法詳解(二)填充顏色、封裝對象、高性能繪制、點(集)(多段)線、圓角矩形、Surface、沿路徑繪制文字

文章目錄 SKCanvas方法DrawColor 填充顏色DrawDrawable 繪制封裝對象DrawImage 高性能繪制圖像SKBitmap與SKImage對比DrawPicture 繪制圖像SKPicture DrawPoint / DrawPoints 繪制點DrawRoundRect/DrawRoundRectDifference繪制圓角矩形DrawSurface 繪制SurfaceDrawTextOnPath沿…

力扣2055.蠟燭之間的盤子

力扣2055.蠟燭之間的盤子 預處理每個元素左右最近的蠟燭下標 同時求前綴和遍歷每個詢問找到左右端點對應的內部的最近蠟燭(最大區間) class Solution {public:vector<int> platesBetweenCandles(string s, vector<vector<int>>& queries) {vector<…

List接口, ArrayList Vector LinkedList

Collection接口的子接口 子類Vector&#xff0c;ArrayList&#xff0c;LinkedList 1.元素的添加順序和取出順序一致&#xff0c;且可重復 2.每個元素都有其對應的順序索引 方法 在index 1 的位置插入一個對象&#xff0c;list.add(1,list2)獲取指定index位置的元素&#…

sheng的學習筆記-AI-聚類(Clustering)

ai目錄 sheng的學習筆記-AI目錄-CSDN博客 基礎知識 什么是聚類 在“無監督學習”(unsupervised learning)中&#xff0c;訓練樣本的標記信息是未知的&#xff0c;目標是通過對無標記訓練樣本的學習來揭示數據的內在性質及規律&#xff0c;為進一步的數據分析提供基礎。此類學…

Android跨進程通信,binder傳輸數據過大導致客戶端APP,Crash,異常捕獲,監聽異常的數值臨界值,提前Hook攔截。

文章目錄 Android跨進程通信&#xff0c;binder傳輸數據過大導致Crash&#xff0c;異常捕獲&#xff0c;監聽異常的數值臨界值&#xff0c;提前Hook攔截。1.binder在做跨進程傳輸時&#xff0c;最大可以攜帶多少數據1.1有時候這個1m的崩潰系統捕獲不到異常&#xff0c; 2.監測異…

志愿填報指南:為什么我強烈建議你報考計算機專業

首先恭喜2024屆高考的同學們&#xff0c;你們已經通過了高考的考驗&#xff0c;即將進入人生的新階段——大學。 現在正是高考完填報志愿的時刻&#xff0c;Left聽到身邊朋友提到報考志愿的諸多問題&#xff1a; 志愿填報怎么填&#xff1f;我要報考什么專業&#xff1f;這個…

[Cloud Networking] OSPF

OSPF 開放式最短路徑優先&#xff08;Open Shortest Path First&#xff09;是一種動態路由協議&#xff0c;它屬于鏈路狀態路由協議&#xff0c;具有路由變化收斂速度快、無路由環路、支持變長子網掩碼和匯總、層次區域劃分等優點。 1 OSPF Area 為了適應大型網絡&#xff0…

可編程定時計數器8253/8254 - 8253入門

時鐘-給設備打拍子 概述 在計算機系統中&#xff0c;為了使所有設備之間的通信井然有序&#xff0c;各通信設備間必須有統一的節奏&#xff0c;不能各干各的&#xff0c;這個節奏就被稱為定時或時鐘 時鐘并不是計算機處理速度的衡量&#xff0c;而是一種使設備間相互配合而避…

【2024-06-21】網易互娛秋招實習筆試三道編程題解

恭喜發現寶藏!搜索公眾號【TechGuide】回復公司名,解鎖更多新鮮好文和互聯網大廠的筆經面經。 作者@TechGuide【全網同名】 訂閱專欄: 【專享版】2024最新大廠筆試真題解析,錯過必后悔的寶藏資源! 第一題:陰陽師斗技 題目描述 小蓋正在參加陰陽師的斗技。已知斗技的規…

Linux 磁盤掛載與分區

Linux 磁盤掛載與分區 vda1: 其中vd表示虛擬磁盤&#xff0c;a表示第一塊磁盤&#xff0c;b表示第二塊磁盤&#xff0c;1表示第一塊磁盤的第一分區&#xff08;顯然兩塊磁盤都只有一個分區&#xff09;圖中可以看到&#xff0c;vda1磁盤只有一個分區&#xff0c;且全部掛載到根…

vue3使用vant4的列表vant-list點擊進入詳情自動滾動到對應位置,踩坑日記(一天半的踩坑經歷)

1.路由添加keepAlive <!-- Vue3緩存組件&#xff0c;寫法和Vue2不一樣--><router-view v-slot"{ Component }"><keep-alive><component :is"Component" v-if"$route.meta.keepAlive"/></keep-alive><component…