媒體網(wǎng)站推廣法今日世界杯比分預(yù)測(cè)最新
一個(gè)Flink程序由多個(gè)Operator組成(source、transformation和 sink)。
一個(gè)Operator由多個(gè)并行的Task(線(xiàn)程)來(lái)執(zhí)行, 一個(gè)Operator的并行Task(線(xiàn)程)數(shù)目就被稱(chēng)為該Operator(任務(wù))的并行度(Parallel)。即并行度就是相對(duì)于Operator來(lái)說(shuō)的。
合理設(shè)置并行度可以有效提高Flink作業(yè)的性能,但并行度的設(shè)置需要根據(jù)souce、sink類(lèi)別、數(shù)據(jù)量、任務(wù)復(fù)雜度、集群資源等多個(gè)因素綜合考慮。下面我們也是從source、transformation和sink來(lái)考慮一些優(yōu)化措施:
1. Kafka Source和Sink的并行度設(shè)置
對(duì)于Kafka,不管是作為source還是sink,我們都建議將其并行度設(shè)置為和Kafka Topic分區(qū)數(shù)一致,這樣每個(gè)subtask都能處理一個(gè)分區(qū)的數(shù)據(jù)。設(shè)置并行度小于Topic分區(qū)數(shù)則有subtask會(huì)讀取多個(gè)分區(qū)數(shù)據(jù),有可能會(huì)導(dǎo)致數(shù)據(jù)積壓;而設(shè)置大于Topic分區(qū)數(shù),會(huì)導(dǎo)致有subtask不能接收到數(shù)據(jù),一是浪費(fèi)并行度資源,另一方面如果用到watermark,則導(dǎo)致無(wú)法產(chǎn)生watermark的問(wèn)題,影響下游的計(jì)算。如果已經(jīng)等于Kafka的分區(qū)數(shù),消費(fèi)速度仍跟不上數(shù)據(jù)生產(chǎn)速度,考慮下Kafka要擴(kuò)大分區(qū),同時(shí)調(diào)大并行度等于分區(qū)數(shù)。如果kafka數(shù)據(jù)量很小,則可以直接設(shè)置為1。
2. JDBC Source和Sink的并行度設(shè)置
對(duì)于