国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Flink精講】Flink性能調(diào)優(yōu):CPU核數(shù)與并行度

這篇具有很好參考價(jià)值的文章主要介紹了【Flink精講】Flink性能調(diào)優(yōu):CPU核數(shù)與并行度。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

常見問題

舉個(gè)例子

提交任務(wù)命令:

bin/flink run \
-t yarn-per-job \
-d \
-p 5 \ 指定并行度
-Dyarn.application.queue=test \ 指定 yarn 隊(duì)列
-Djobmanager.memory.process.size=2048mb \ JM2~4G 足夠
-Dtaskmanager.memory.process.size=4096mb \ 單個(gè) TM2~8G 足夠
-Dtaskmanager.numberOfTaskSlots=2 \ 與容器核數(shù) 1core: 1slot 或 2core: 1slot
-c com.atguigu.flink.tuning.UvDemo \
/opt/module/flink-1.13.1/myjar/flink-tuning-1.0-SNAPSHOT.jar

并行度為5,每個(gè)任務(wù)占用槽數(shù)為2,則需要申請(qǐng)3個(gè)容器(2*3=6),JobManager需要一個(gè)容器,共需要4個(gè)容器。6個(gè)vcore+JobManager的1個(gè)vcore共7個(gè)vcore。而實(shí)際上是4個(gè)容器,4個(gè)vcore,這是為什么呢?

flink提交參數(shù)cpu 內(nèi)存,Flink精講,大數(shù)據(jù),Flink,flink,大數(shù)據(jù)

實(shí)際運(yùn)行效果:?

flink提交參數(shù)cpu 內(nèi)存,Flink精講,大數(shù)據(jù),Flink,flink,大數(shù)據(jù)

Yarn調(diào)度器設(shè)置

這跟yarn的調(diào)度器設(shè)置相關(guān),找到capacity-scheduler.xml

  • default的方式只會(huì)參考內(nèi)存來申請(qǐng)容器,不會(huì)考慮cpu的需求。
  • 調(diào)整為下面domian的方式,會(huì)綜合考慮內(nèi)存+CPU的需求來申請(qǐng)資源。

flink提交參數(shù)cpu 內(nèi)存,Flink精講,大數(shù)據(jù),Flink,flink,大數(shù)據(jù)

調(diào)整后運(yùn)行效果:

flink提交參數(shù)cpu 內(nèi)存,Flink精講,大數(shù)據(jù),Flink,flink,大數(shù)據(jù)

刷新一下

?指定容器核心數(shù)

bin/flink run \
-t yarn-per-job \
-d \
-p 5 \
-Drest.flamegraph.enabled=true \
-Dyarn.application.queue=test \
-Dyarn.containers.vcores=3 \
-Djobmanager.memory.process.size=1024mb \
-Dtaskmanager.memory.process.size=4096mb \
-Dtaskmanager.numberOfTaskSlots=2 \
-c com.atguigu.flink.tuning.UvDemo \
/opt/module/flink-1.13.1/myjar/flink-tuning-1.0-SNAPSHOT.jar

flink提交參數(shù)cpu 內(nèi)存,Flink精講,大數(shù)據(jù),Flink,flink,大數(shù)據(jù)

一個(gè)容器3個(gè)核,2個(gè)slot,不是1:1的關(guān)系也可以。

slot主要隔離內(nèi)存,不隔離cpu資源。

solt還有一個(gè)共享機(jī)制,一個(gè)slot可以同時(shí)跑多個(gè)task,一個(gè)solt可以不只使用一個(gè)線程。

通常讓系統(tǒng)自動(dòng)來設(shè)置,通常跟solt數(shù)1比1

并行度設(shè)置

  1. 配置文件:默認(rèn)并行度,默認(rèn)1
  2. 提交參數(shù):如-p 5
  3. 代碼env
  4. 代碼算子

優(yōu)先級(jí)下面的高。

全局并行度計(jì)算

????????開發(fā)完成后,先進(jìn)行壓測(cè)。任務(wù)并行度給 10 以下,測(cè)試單個(gè)并行度的處理上限。然后
總QPS / 單并行度的處理能力 = 并行度
QPS使用高峰期的。
????????開發(fā)完 Flink 作業(yè),壓測(cè)的方式很簡單,先在 kafka 中積壓數(shù)據(jù),之后開啟 Flink 任務(wù),
出現(xiàn)反壓,就是處理瓶頸。相當(dāng)于水庫先積水,一下子泄洪。
????????不能只從 QPS 去得出并行度,因?yàn)橛行┳侄紊佟⑦壿嫼唵蔚娜蝿?wù),單并行度一秒處理
幾萬條數(shù)據(jù)。 而有些數(shù)據(jù)字段多,處理邏輯復(fù)雜, 單并行度一秒只能處理 1000 條數(shù)據(jù)。
最好根據(jù)高峰期的 QPS 壓測(cè), 并行度*1.2 倍,富余一些資源。

查看單個(gè)任務(wù)的輸出量:numRecordsOutPerSecond,單并行度7000條/秒,生成環(huán)境高峰期的qps:30000/s,30000/7000 = 4.x,并行度5,再乘以個(gè)冗余1.2 = 6個(gè)

flink提交參數(shù)cpu 內(nèi)存,Flink精講,大數(shù)據(jù),Flink,flink,大數(shù)據(jù)

如果數(shù)據(jù)源是kafka,可以按kafka分區(qū)數(shù)來設(shè)置并行度。?

大部分情況下并行度10以下即可。

Source 端并行度的配置

????????數(shù)據(jù)源端是 Kafka, Source 的并行度設(shè)置為 Kafka 對(duì)應(yīng) Topic 的分區(qū)數(shù)。
????????如果已經(jīng)等于 Kafka 的分區(qū)數(shù), 消費(fèi)速度仍跟不上數(shù)據(jù)生產(chǎn)速度, 考慮下 Kafka 要擴(kuò)
大分區(qū), 同時(shí)調(diào)大并行度等于分區(qū)數(shù)。

????????Flink 的一個(gè)并行度可以處理一至多個(gè)分區(qū)的數(shù)據(jù),如果并行度多于 Kafka 的分區(qū)數(shù),
那么就會(huì)造成有的并行度空閑,浪費(fèi)資源。

Transform 端并行度的配置

Keyby 之前的算子

一般不會(huì)做太重的操作,都是比如 map、 filter、 flatmap 等處理較快的算子,并行度
可以和 source 保持一致。

Keyby 之后的算子

如果并發(fā)較大,建議設(shè)置并行度為 2 的整數(shù)次冪,例如: 128、 256、 512;
小并發(fā)任務(wù)的并行度不一定需要設(shè)置成 2 的整數(shù)次冪;
大并發(fā)任務(wù)如果沒有 KeyBy,并行度也無需設(shè)置為 2 的整數(shù)次冪;

Sink 端并行度的配置

????????Sink 端是數(shù)據(jù)流向下游的地方,可以根據(jù) Sink 端的數(shù)據(jù)量及下游的服務(wù)抗壓能力進(jìn)行評(píng)估。 如果 Sink 端是 Kafka,可以設(shè)為 Kafka 對(duì)應(yīng) Topic 的分區(qū)數(shù)。
????????Sink 端的數(shù)據(jù)量小, 比較常見的就是監(jiān)控告警的場(chǎng)景,并行度可以設(shè)置的小一些。
????????Source 端的數(shù)據(jù)量是最小的,拿到 Source 端流過來的數(shù)據(jù)后做了細(xì)粒度的拆分,數(shù)據(jù)量不斷的增加,到 Sink 端的數(shù)據(jù)量就非常大。那么在 Sink 到下游的存儲(chǔ)中間件的時(shí)候就需要提高并行度。
????????另外 Sink 端要與下游的服務(wù)進(jìn)行交互,并行度還得根據(jù)下游的服務(wù)抗壓能力來設(shè)置,如果在 Flink Sink 這端的數(shù)據(jù)量過大的話, 且 Sink 處并行度也設(shè)置的很大,但下游的服務(wù)完全撐不住這么大的并發(fā)寫入,可能會(huì)造成下游服務(wù)直接被寫掛,所以最終還是要在 Sink處的并行度做一定的權(quán)衡。文章來源地址http://www.zghlxwxcb.cn/news/detail-848021.html

到了這里,關(guān)于【Flink精講】Flink性能調(diào)優(yōu):CPU核數(shù)與并行度的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • flink算子的并行度設(shè)置方法

    flink算子的并行度設(shè)置方法

    #flink算子的并行度設(shè)置方法 并行度(Parallelism)是flink中一個(gè)非常重要的概念,它主要是指一個(gè)算子可以被分的子任務(wù)數(shù),通常越高就意味著算子計(jì)算速度越快。 如上圖所示,map()算子的并行度為2,window()算子的并行度也為2,也可以說整個(gè)數(shù)據(jù)流的并行度就是2。并行度的設(shè)置

    2024年03月17日
    瀏覽(36)
  • Flink學(xué)習(xí)筆記(七)并行度詳解

    Flink學(xué)習(xí)筆記(七)并行度詳解

    一個(gè)Flink程序由多個(gè)任務(wù)(Source、Transformation和Sink)組成。一個(gè)任務(wù)由多個(gè)并行實(shí)例(線程)來執(zhí)行,一個(gè)任務(wù)的并行實(shí)例(線程)數(shù)目被稱為該任務(wù)的并行度。 Flink是一個(gè)分布式流處理框架,它基于TaskManager和Slot來實(shí)現(xiàn)任務(wù)的執(zhí)行。TaskManager是Flink中負(fù)責(zé)運(yùn)行任務(wù)的工作進(jìn)程

    2024年02月09日
    瀏覽(18)
  • 十八、Flink自定義多并行Source

    1、概述 1)作用 自定義多并行的Source,即Source的并行度可以是1到多個(gè)。 2)實(shí)現(xiàn) 1.繼承RichParallelSourceFunction,重寫run()方法。 2、代碼實(shí)現(xiàn)

    2024年02月08日
    瀏覽(23)
  • Flink|《Flink 官方文檔 - 部署 - 內(nèi)存配置 - 網(wǎng)絡(luò)緩沖調(diào)優(yōu)》學(xué)習(xí)筆記

    學(xué)習(xí)文檔:《Flink 官方文檔 - 部署 - 內(nèi)存配置 - 網(wǎng)絡(luò)緩沖調(diào)優(yōu)》 學(xué)習(xí)筆記如下: Flink 中每條消息都會(huì)被放到網(wǎng)絡(luò)緩沖(network buffer) 中,并以此為最小單位發(fā)送到下一個(gè) subtask。 Flink 在傳輸過程的輸入端和輸出端使用了網(wǎng)絡(luò)緩沖隊(duì)列,即每個(gè) subtask 都有一個(gè)輸入隊(duì)列來接收

    2024年01月21日
    瀏覽(52)
  • Flink TaskSlot,算子鏈和并行度

    Flink TaskSlot,算子鏈和并行度 (108條消息) Flink TaskSlot與并行度_flink slot和并行度的關(guān)系_保護(hù)我方胖虎的博客-CSDN博客

    2024年02月15日
    瀏覽(13)
  • Flink 優(yōu)化(六) --------- FlinkSQL 調(diào)優(yōu)

    Flink 優(yōu)化(六) --------- FlinkSQL 調(diào)優(yōu)

    FlinkSQL 官網(wǎng)配置參數(shù): https://ci.apache.org/projects/flink/flink-docs-release-1.13/dev/table/config.html Flink SQL 新手有可能犯的錯(cuò)誤,其中之一就是忘記設(shè)置空閑狀態(tài)保留時(shí)間導(dǎo)致狀態(tài)爆炸。列舉兩個(gè)場(chǎng)景: ? FlinkSQL 的 regular join(inner、left、right),左右表的數(shù)據(jù)都會(huì)一直保存在狀態(tài)里,不

    2024年02月14日
    瀏覽(21)
  • Flink|《Flink 官方文檔 - 部署 - 內(nèi)存配置 - 調(diào)優(yōu)指南 & 常見問題》學(xué)習(xí)筆記

    學(xué)習(xí)文檔: 《Flink 官方文檔 - 部署 - 內(nèi)存配置 - 調(diào)優(yōu)指南》 《Flink 官方文檔 - 部署 - 內(nèi)存配置 - 常見問題》 學(xué)習(xí)筆記如下: 獨(dú)立部署模式(Standalone Deployment)下的內(nèi)存配置 通常無需配置進(jìn)程總內(nèi)存,因?yàn)椴还苁?Flink 還是部署環(huán)境都不會(huì)對(duì) JVM 開銷進(jìn)行限制,它只與機(jī)器的

    2024年02月19日
    瀏覽(24)
  • 【Flink】Flink提交流程

    【Flink】Flink提交流程

    我們通常在學(xué)習(xí)的時(shí)候需要掌握大數(shù)據(jù)組件的原理以便更好的掌握這個(gè)大數(shù)據(jù)組件,F(xiàn)link實(shí)際生產(chǎn)開發(fā)過程中最常見的就是提交到y(tǒng)arn上進(jìn)行調(diào)度,模式使用的 Per-Job模式,下面我們就給大家講下Flink提交Per-Job任務(wù)到y(tǒng)arn上的流程,流程圖如下 ?(1)客戶端將作業(yè)提交給 YARN 的資

    2024年02月11日
    瀏覽(14)
  • Flink-intervalJoin源碼和并行度問題

    Flink-intervalJoin源碼和并行度問題

    底層用的是connect 把兩個(gè)流的數(shù)據(jù)先保存到狀態(tài)中 ?先判斷有沒有遲到,遲到就放到側(cè)輸出流 再根據(jù)范圍找數(shù)據(jù) 然后根據(jù)上界刪除數(shù)據(jù) ? ? 多個(gè)上游,一個(gè)下游,下游取最小的 一個(gè)上游,多個(gè)下游,廣播 多個(gè)上游,多個(gè)下游,先廣播,再取最小的 注意:水位線會(huì)減1ms 有可

    2024年02月16日
    瀏覽(21)
  • Flink-任務(wù)槽和并行度的關(guān)系

    Flink-任務(wù)槽和并行度的關(guān)系

    任務(wù)槽 和并行度都跟程序的并行執(zhí)行有關(guān),但兩者是完全不同的概念 。簡單來說 任務(wù)槽 是靜態(tài)的概念 ,是指TaskManager具有的并發(fā)執(zhí)行能力,可以通過參數(shù)taskmanager.numberOfTaskSlots進(jìn)行配置;而并行度是動(dòng)態(tài)概念,也就是TaskManager運(yùn)行程序時(shí)實(shí)際使用的并發(fā)能力,可以通過參數(shù)

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包