内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Flink面試題有哪些

這篇文章主要講解了“Flink面試題有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Flink面試題有哪些”吧!

成都創(chuàng)新互聯(lián)是專業(yè)的潁東網(wǎng)站建設(shè)公司,潁東接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行潁東網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

1、應(yīng)用架構(gòu)

        問題:公司怎么提交的實(shí)時(shí)任務(wù),有多少 Job Manager?

        解答

        1. 我們使用 yarn session 模式提交任務(wù)。每次提交都會(huì)創(chuàng)建一個(gè)新的 Flink 集群,為每一個(gè) job 提供一個(gè) yarn-session,任務(wù)之間互相獨(dú)立,互不影響, 方便管理。任務(wù)執(zhí)行完成之后創(chuàng)建的集群也會(huì)消失。線上命令腳本如下:

bin/yarn-session.sh -n 7 -s 8 -jm 3072 -tm 32768 -qu root.*.* -nm *-* -d

        其中申請 7 個(gè) taskManager,每個(gè) 8 核,每個(gè) taskmanager 有 32768M 內(nèi)存。

        2. 集群默認(rèn)只有一個(gè) Job Manager。但為了防止單點(diǎn)故障,我們配置了高可用。 我們公司一般配置一個(gè)主 Job Manager,兩個(gè)備用 Job Manager,然后結(jié)合 ZooKeeper 的使用,來達(dá)到高可用。

2、壓測和監(jiān)控

        問題:怎么做壓力測試和監(jiān)控?

        解答:我們一般碰到的壓力來自以下幾個(gè)方面:

        一,產(chǎn)生數(shù)據(jù)流的速度如果過快,而下游的算子消費(fèi)不過來的話,會(huì)產(chǎn)生背壓。 背壓的監(jiān)控可以使用 Flink Web UI(localhost:8081) 來可視化監(jiān)控,一旦報(bào)警就能知道。一般情況下背壓問題的產(chǎn)生可能是由于 sink這個(gè) 操作符沒有優(yōu)化好,做一下 優(yōu)化就可以了。比如如果是寫入 ElasticSearch, 那么可以改成批量寫入,可以調(diào) 大 ElasticSearch 隊(duì)列的大小等等策略。

        二,設(shè)置 watermark 的最大延遲時(shí)間這個(gè)參數(shù),如果設(shè)置的過大,可能會(huì)造成內(nèi)存的壓力。可以設(shè)置最大延遲時(shí)間小一些,然后把遲到元素發(fā)送到側(cè)輸出流中去。 晚一點(diǎn)更新結(jié)果?;蛘呤褂妙愃朴?RocksDB這樣的狀態(tài)后端, RocksDB 會(huì)開辟堆外存儲(chǔ)空間,但 IO 速度會(huì)變慢,需要權(quán)衡。

        三,還有就是滑動(dòng)窗口的長度如果過長,而滑動(dòng)距離很短的話,F(xiàn)link 的性能會(huì)下降的很厲害。我們主要通過時(shí)間分片的方法,將每個(gè)元素只存入一個(gè)“重疊窗 口”,這樣就可以減少窗口處理中狀態(tài)的寫入。(詳情鏈接:Flink 滑動(dòng)窗口優(yōu)化)

        四,狀態(tài)后端使用 RocksDB,還沒有碰到被撐爆的問題

3、為什么用 Flink

        問題:為什么使用 Flink 替代 Spark?

        解答:主要考慮的是 flink 的低延遲、高吞吐量和對流式數(shù)據(jù)應(yīng)用場景更好的支持;另外,flink 可以很好地處理亂序數(shù)據(jù),而且可以保證 exactly-once的狀態(tài)一致性。

4、checkpoint 的理解

        問題:如何理解Flink的checkpoint

        解答:Checkpoint是Flink實(shí)現(xiàn)容錯(cuò)機(jī)制最核心的功能,它能夠根據(jù)配置周期性地基于Stream中各個(gè)Operator/task的狀態(tài)來生成快照,從而將這些狀態(tài)數(shù)據(jù)定期持久化存儲(chǔ)下來,當(dāng)Flink程序一旦意外崩潰時(shí),重新運(yùn)行程序時(shí)可以有選擇地從這些快照進(jìn)行恢復(fù),從而修正因?yàn)楣收蠋淼某绦驍?shù)據(jù)異常。他可以存在內(nèi)存,文件系統(tǒng),或者 RocksDB。

5、exactly-once 的保證

        問題:如果下級存儲(chǔ)不支持事務(wù),F(xiàn)link 怎么保證 exactly-once?

        解答:端到端的 exactly-once 對 sink 要求比較高,具體實(shí)現(xiàn)主要有冪等寫入事務(wù)性寫入兩種方式。冪等寫入的場景依賴于業(yè)務(wù)邏輯,更常見的是用事務(wù)性寫入。 而事務(wù)性寫入又有預(yù)寫日志(WAL)兩階段提交(2PC)兩種方式。

        如果外部系統(tǒng)不支持事務(wù),那么可以用預(yù)寫日志的方式,把結(jié)果數(shù)據(jù)先當(dāng)成狀態(tài)保存,然后在收到 checkpoint完成的通知時(shí),一次性寫入 sink 系統(tǒng)。

6、狀態(tài)機(jī)制

        問題:說一下 Flink 狀態(tài)機(jī)制?

        解答:Flink 內(nèi)置的很多算子,包括源 source,數(shù)據(jù)存儲(chǔ) sink 都是有狀態(tài)的。在 Flink 中,狀態(tài)始終與特定算子相關(guān)聯(lián)。Flink 會(huì)以 checkpoint的形式對各個(gè)任務(wù)的 狀態(tài)進(jìn)行快照,用于保證故障恢復(fù)時(shí)的狀態(tài)一致性。Flink 通過狀態(tài)后端來管理狀態(tài) 和 checkpoint 的存儲(chǔ),狀態(tài)后端也可以有不同的配置選擇。

7、海量 key 去重

        問題:怎么去重?考慮一個(gè)實(shí)時(shí)場景:雙十一場景,滑動(dòng)窗口長度為 1 小時(shí), 滑動(dòng)距離為 10 秒鐘,億級用戶,怎樣計(jì)算 UV?

        解答:使用類似于 scala 的 set 數(shù)據(jù)結(jié)構(gòu)或者 redis 的 set 顯然是不行的, 因?yàn)榭赡苡猩蟽|個(gè) Key,內(nèi)存放不下。所以可以考慮使用布隆過濾器(Bloom Filter) 來去重。

8、checkpoint 與 spark 比較

        問題:Flink 的 checkpoint機(jī)制對比 spark 有什么不同和優(yōu)勢?

        解答:spark streaming 的 checkpoint 僅僅是針對 driver 的故障恢復(fù)做了數(shù)據(jù)和元數(shù)據(jù)的checkpoint。而 flink 的 checkpoint 機(jī)制要復(fù)雜了很多,它采用的是輕量級的分布式快照,實(shí)現(xiàn)了每個(gè)算子的快照,及流動(dòng)中的數(shù)據(jù)的快照。

9、watermark 機(jī)制

        問題:請?jiān)敿?xì)解釋一下 Flink 的 Watermark 機(jī)制。

        解答:在使用 EventTime 處理 Stream 數(shù)據(jù)的時(shí)候會(huì)遇到數(shù)據(jù)亂序的問題,流處理從 Event(事 件)產(chǎn)生,流經(jīng) Source,再到 Operator,這中間需要一定的時(shí)間。雖然大部分情況下,傳輸?shù)?Operator 的數(shù)據(jù)都是按照事件產(chǎn)生的時(shí)間順序來的,但是也不排除由于網(wǎng)絡(luò)延遲等原因而導(dǎo)致亂序的產(chǎn)生,特別是使用 Kafka 的時(shí)候,多個(gè)分區(qū)之間的數(shù)據(jù)無法保證有序。因此, 在進(jìn)行 Window 計(jì)算的時(shí)候,不能無限期地等下去,必須要有個(gè)機(jī)制來保證在特定的時(shí)間后, 必須觸發(fā) Window 進(jìn)行計(jì)算,這個(gè)特別的機(jī)制就是 Watermark(水位線)。Watermark是用于處理亂序事件的。

        在 Flink 的窗口處理過程中,如果確定全部數(shù)據(jù)到達(dá),就可以對 Window 的所有數(shù)據(jù)做窗口計(jì)算操作(如匯總、分組等),如果數(shù)據(jù)沒有全部到達(dá),則繼續(xù)等待該窗口中的數(shù)據(jù)全部到達(dá)才開始處理。這種情況下就需要用到水位線(WaterMarks)機(jī)制,它能夠衡量數(shù)據(jù)處理進(jìn)度(表達(dá)數(shù)據(jù)到達(dá)的完整性),保證事件數(shù)據(jù)(全部)到達(dá) Flink 系統(tǒng),或者在亂序及延遲到達(dá)時(shí),也能夠像預(yù)期一樣計(jì)算出正確并且連續(xù)的結(jié)果。

10、exactly-once 如何實(shí)現(xiàn)

        問題:Flink 中 exactly-once 語義是如何實(shí)現(xiàn)的,狀態(tài)是如何存儲(chǔ)的?

        解答:Flink 依靠 checkpoint機(jī)制來實(shí)現(xiàn) exactly-once語義,如果要實(shí)現(xiàn)端到端 的 exactly-once,還需要外部 source 和 sink 滿足一定的條件。狀態(tài)的存儲(chǔ)通過狀態(tài) 后端來管理,F(xiàn)link 中可以配置不同的狀態(tài)后端。

11、CEP

        問題:Flink CEP 編程中當(dāng)狀態(tài)沒有到達(dá)的時(shí)候會(huì)將數(shù)據(jù)保存在哪里?

        解答:在流式處理中,CEP 當(dāng)然是要支持 EventTime的,那么相對應(yīng)的也要支持?jǐn)?shù)據(jù)的遲到現(xiàn)象,也就是 watermark的處理邏輯。CEP對未匹配成功的事件序 列的處理,和遲到數(shù)據(jù)是類似的。在 Flink CEP 的處理邏輯中,狀態(tài)沒有滿足的和遲到的數(shù)據(jù),都會(huì)存儲(chǔ)在一個(gè) Map 數(shù)據(jù)結(jié)構(gòu)中,也就是說,如果我們限定判斷事件 序列的時(shí)長為5 分鐘,那么內(nèi)存中就會(huì)存儲(chǔ) 5 分鐘的數(shù)據(jù),這在我看來,也是對內(nèi)存的極大損傷之一。

12、三種時(shí)間語義

        問題:Flink 三種時(shí)間語義是什么,分別說出應(yīng)用場景?

        解答

  • Event Time:這是實(shí)際應(yīng)用最常見的時(shí)間語義,指的是事件創(chuàng)建的時(shí)間,往往跟watermark結(jié)合使用

  • Processing Time:指每一個(gè)執(zhí)行基于時(shí)間操作的算子的本地系統(tǒng)時(shí)間,與機(jī)器相關(guān)。適用場景:沒有事件時(shí)間的情況下,或者對實(shí)時(shí)性要求超高的情況

  • Ingestion Time:指數(shù)據(jù)進(jìn)入Flink的時(shí)間。適用場景:存在多個(gè) Source Operator的情況下,每個(gè) Source Operator 可以使用自己本地系統(tǒng)時(shí)鐘指派 Ingestion Time。后續(xù)基于時(shí)間相關(guān)的各種操作, 都會(huì)使用數(shù)據(jù)記錄中的 Ingestion Time

13、數(shù)據(jù)高峰的處理

        問題:Flink 程序在面對數(shù)據(jù)高峰期時(shí)如何處理?

        解答:使用大容量的 Kafka 把數(shù)據(jù)先放到消息隊(duì)列里面作為數(shù)據(jù)源,再使用 Flink 進(jìn)行消費(fèi),不過這樣會(huì)影響到一點(diǎn)實(shí)時(shí)性。

感謝各位的閱讀,以上就是“Flink面試題有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Flink面試題有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁標(biāo)題:Flink面試題有哪些
鏈接URL:http://www.rwnh.cn/article22/pgcjjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)微信公眾號、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
宝坻区| 洞头县| 阿荣旗| 孙吴县| 哈巴河县| 金阳县| 墨脱县| 共和县| 天津市| 渑池县| 海晏县| 临汾市| 盘山县| 资阳市| 海兴县| 独山县| 尉犁县| 万宁市| 阜南县| 南部县| 双牌县| 和平县| 安陆市| 祥云县| 郓城县| 南阳市| 浪卡子县| 米脂县| 灵宝市| 台南县| 和顺县| 策勒县| 霍州市| 天等县| 常德市| 桑日县| 三明市| 中江县| 扶绥县| 尼玛县| 崇义县|