Flink 靈魂兩百問,這誰頂得住?

兩百問一點都不誇張,這才光知識星球從建立到如今的問題總數,另外還有多個微信羣的答疑解惑。有時候忍不住想給本身點個贊,咋能這麼?呢?
php

麻煩路過的各位親給這個項目點個 star,太不易了,寫了這麼多,算是對我堅持下來的一種鼓勵吧!地址:https://github.com/zhisheng17/flink-learningjava

640?wx_fmt=jpeg

本項目結構

640?wx_fmt=jpeg

2019/06/08 新增 Flink 四本電子書籍的 PDF,在 books 目錄下:mysql

  • Introduction_to_Apache_Flink_book.pdf 這本書比較薄,處於介紹階段,國內有這本的翻譯書籍linux

  • Learning Apache Flink.pdf 這本書比較基礎,初學的話能夠多看看git

  • Stream Processing with Apache Flink.pdf 這本書是 Flink PMC 寫的github

  • Streaming System.pdf 這本書評價不是通常的高web

2019/06/09 新增流處理引擎相關的 Paper,在 paper 目錄下:面試

  • 流處理引擎相關的 Paperredis

博客

一、《從0到1學習Flink》—— Apache Flink 介紹
二、《從0到1學習Flink》—— Mac 上搭建 Flink 1.6.0 環境並構建運行簡單程序入門
三、《從0到1學習Flink》—— Flink 配置文件詳解
四、《從0到1學習Flink》—— Data Source 介紹
五、《從0到1學習Flink》—— 如何自定義 Data Source ?
六、《從0到1學習Flink》—— Data Sink 介紹
七、《從0到1學習Flink》—— 如何自定義 Data Sink ?
八、《從0到1學習Flink》—— Flink Data transformation(轉換)
九、《從0到1學習Flink》—— 介紹 Flink 中的 Stream Windows
十、《從0到1學習Flink》—— Flink 中的幾種 Time 詳解
十一、《從0到1學習Flink》—— Flink 讀取 Kafka 數據寫入到 ElasticSearch
十二、《從0到1學習Flink》—— Flink 項目如何運行?
1三、《從0到1學習Flink》—— Flink 讀取 Kafka 數據寫入到 Kafka
1四、《從0到1學習Flink》—— Flink JobManager 高可用性配置
1五、《從0到1學習Flink》—— Flink parallelism 和 Slot 介紹
1六、《從0到1學習Flink》—— Flink 讀取 Kafka 數據批量寫入到 MySQL
1七、《從0到1學習Flink》—— Flink 讀取 Kafka 數據寫入到 RabbitMQ
1八、《從0到1學習Flink》—— 你上傳的 jar 包藏到哪裏去了
1九、大數據「重磅炸彈」——實時計算框架 Flink
20、《Flink 源碼解析》—— 源碼編譯運行
2一、爲何說流處理即將來?
2二、OPPO數據中臺之基石:基於Flink SQL構建實數據倉庫
2三、流計算框架 Flink 與 Storm 的性能對比
2四、Flink狀態管理和容錯機制介紹
2五、原理解析 | Apache Flink 結合 Kafka 構建端到端的 Exactly-Once 處理
2六、Apache Flink 是如何管理好內存的?
2七、從0到1學習Flink》——Flink 中這樣管理配置,你知道?
2八、從0到1學習Flink》——Flink 不能夠連續 Split(分流)?
2九、Flink 從0到1學習—— 分享四本 Flink 的書和二十多篇 Paper 論文
30、360深度實踐:Flink與Storm協議級對比
3一、Apache Flink 1.9 重大特性提早解讀
3二、如何基於Flink+TensorFlow打造實時智能異常檢測平臺?只看這一篇就夠了
3三、美團點評基於 Flink 的實時數倉建設實踐算法


Flink 源碼項目結構

640?wx_fmt=jpeg

知識星球

640?wx_fmt=jpeg

有人要問知識星球裏面更新什麼內容?值得加入嗎?

目前知識星球內已更新的系列文章:

640?wx_fmt=png


除了《從1到100深刻學習Flink》源碼學習這個系列文章,《從0到1學習Flink》的案例文章也會優先在知識星球更新,讓你們先經過一些 demo 學習 Flink,再去深刻源碼學習!

若是學習 Flink 的過程當中,遇到什麼問題,能夠在裏面提問,我會優先解答,這裏作個抱歉,本身平時工做也挺忙,微信的問題不能作所有作一些解答,
但確定會優先回復給知識星球的付費用戶的,慶幸的是如今星球裏的活躍氛圍仍是能夠的,有很多問題經過提問和解答的方式沉澱了下來。

一、爲什麼我使用 ValueState 保存狀態 Job 恢復是狀態沒恢復?

二、flink中watermark到底是如何生成的,生成的規則是什麼,怎麼用來處理亂序數據

三、消費kafka數據的時候,若是遇到了髒數據,或者是不符合規則的數據等等怎麼處理呢?

四、在Kafka 集羣中怎麼指定讀取/寫入數據到指定broker或從指定broker的offset開始消費?

五、Flink能經過oozie或者azkaban提交嗎?

六、jobmanager掛掉後,提交的job怎麼不通過手動從新提交執行?

七、使用flink-web-ui提交做業並執行 可是/opt/flink/log目錄下沒有日誌文件 請問關於flink的日誌(包括jobmanager、taskmanager、每一個job本身的日誌默認分別存在哪一個目錄 )須要怎麼配置?

八、經過flink 儀表盤提交的jar 是存儲在哪一個目錄下?

九、從Kafka消費數據進行etl清洗,把結果寫入hdfs映射成hive表,壓縮格式、hive直接可以讀取flink寫出的文件、按照文件大小或者時間滾動生成文件

十、flink jar包上傳至集羣上運行,掛掉後,掛掉期間kafka中未被消費的數據,在從新啓動程序後,是自動從checkpoint獲取掛掉以前的kafka offset位置,自動消費以前的數據進行處理,仍是須要某些手動的操做呢?

十一、flink 啓動時不自動建立 上傳jar的路徑,能指定一個建立好的目錄嗎

十二、Flink sink to es 集羣上報 slot 不夠,單機跑是好的,爲何?

1三、Fllink to elasticsearch如何建立索引文檔期時間戳?

1四、blink有沒有api文檔或者demo,是否建議blink用於生產環境。

1五、flink的Python api怎樣?bug多嗎?

1六、Flink VS Spark Streaming VS Storm VS Kafka Stream

1七、大家作實時大屏的技術架構是什麼樣子的?flume→kafka→flink→redis,而後後端去redis裏面撈數據,醬紫可行嗎?

1八、作一個統計指標的時候,須要在Flink的計算過程當中屢次讀寫redis,感受好怪,星主有沒有好的方案?

1九、Flink 使用場景大分析,列舉了不少的經常使用場景,能夠好好參考一下

20、將kafka中數據sink到mysql時,metadata的數據爲空,導入mysql數據不成功???

2一、使用了ValueState來保存中間狀態,在運行時中間狀態保存正常,可是在手動中止後,再從新運行,發現中間狀態值沒有了,以前出現的鍵值是從0開始計數的,這是爲何?是須要實現CheckpointedFunction嗎?

2二、flink on yarn jobmanager的HA須要怎麼配置。仍是說yarn給管理了

2三、有兩個數據流就行connect,其中一個是實時數據流(kafka 讀取),另外一個是配置流。因爲配置流是從關係型數據庫中讀取,速度較慢,致使實時數據流流入數據的時候,配置信息還未發送,這樣會致使有些實時數據讀取不到配置信息。目前採起的措施是在connect方法後的flatmap的實現的在open 方法中,提早加載一次配置信息,感受這種實現方式不友好,請問還有其餘的實現方式嗎?

2四、Flink能經過oozie或者azkaban提交嗎?

2五、不採用yarm部署flink,還有其餘的方案嗎?主要想解決服務器重啓後,flink服務怎麼自動拉起?jobmanager掛掉後,提交的job怎麼不通過手動從新提交執行?

2六、在一個 Job 裏將同份數據昨晚清洗操做後,sink 到後端多個地方(看業務需求),如何保持一致性?(一個sink出錯,另外的也保證不能插入)

2七、flink sql任務在某個特定階段會發生tm和jm丟失心跳,是否是因爲gc時間過長呢,

2八、有這樣一個需求,統計用戶近兩週進入產品詳情頁的來源(1首頁大搜索,2產品頻道搜索,3其餘),爲php後端提供數據支持,該信息在端上報事件中,php直接獲取有點困難。我如今的解決方案 經過flink滾動窗口(半小時),統計用戶半小時內3個來源pv,而後按照日期序列化,直接寫mysql。php從數據庫中解析出來,再去統計近兩週佔比。問題1,這個需求適合用flink去作嗎?問題2,個人方案總感受怪怪的,有沒有好的方案?

2九、一個task slot 只能同時運行一個任務仍是多個任務呢?若是task slot運行的任務比較大,會出現OOM的狀況嗎?

30、大家怎麼對線上flink作監控的,若是整個程序失敗了怎麼自動重啓等等

3一、flink cep規則動態解析有接觸嗎?有沒有成型的框架?

3二、每個Window都有一個watermark嗎?window是怎麼根據watermark進行觸發或者銷燬的?

3三、 CheckPoint與SavePoint的區別是什麼?

3四、flink能夠在算子中共享狀態嗎?或者大佬你有什麼方法能夠共享狀態的呢?

3五、運行幾分鐘就報了,看taskmager日誌,報的是 failed elasticsearch bulk request null,但是我代碼裏面已經作過空值判斷了呀 並且也過濾掉了,flink版本1.7.2 es版本6.3.1

3六、這種狀況,咱們調並行度 仍是配置參數好

3七、你們都用jdbc寫,各類數據庫增刪查改拼sql有沒有以爲很累,ps.set代碼一大堆,還要計算每一個參數的位置

3八、關於datasource的配置,每一個taskmanager對應一個datasource?仍是每一個slot? 實際運行下來,每一個slot中datasorce線程池只要設置1就好了,多了也用不到?

3九、kafka如今天天出現數據丟失,如今小批量數據,一天200W左右, kafka版本爲 1.0.0,集羣總共7個節點,TOPIC有十六個分區,單條報文1.5k左右

40、根據key.hash的絕對值 對併發度求模,進行分組,假設10各併發度,實際只有8個分區有處理數據,有2個始終不處理,還有一個分區處理的數據是其餘的三倍,如截圖

4一、flink每7小時不知道在處理什麼, CPU 負載 每7小時,有一次高峯,5分鐘內平均負載超過0.8,如截圖

4二、有沒有Flink寫的項目推薦?我想看到用Flink寫的總體項目是怎麼組織的,不僅僅是一個單例子

4三、Flink 源碼的結構圖

4四、我想根據不一樣業務表(case when)進行不一樣的redis sink(hash ,set),我要如何操做?

4五、這個須要清理什麼數據呀,我把hdfs裏面的已經清理了 啓動仍是報這個

4六、 在流處理系統,在機器發生故障恢復以後,什麼狀況消息最多會被處理一次?什麼狀況消息最少會被處理一次呢?

4七、我檢查點都調到5分鐘了,這是什麼問題

4八、reduce方法後 那個交易時間 怎麼不是最新的,是第一次進入的那個時間,

4九、Flink on Yarn 模式,用yarn session腳本啓動的時候,我在後臺沒有看到到Jobmanager,TaskManager,ApplicationMaster這幾個進程,想請問一下這是什麼緣由呢?由於以前看官網的時候,說Jobmanager就是一個jvm進程,Taskmanage也是一個JVM進程

50、Flink on Yarn的時候得指定 多少個TaskManager和每一個TaskManager slot去運行任務,這樣作感受不太合理,由於用戶也不知道須要多少個TaskManager適合,Flink 有動態啓動TaskManager的機制嗎。

5一、參考這個例子,Flink 零基礎實戰教程:如何計算實時熱門商品 | Jark's Blog, 窗口聚合的時候,用keywindow,用的是timeWindowAll,而後在aggregate的時候用aggregate(new CustomAggregateFunction(), new CustomWindowFunction()),打印結果後,發現窗口中一直使用的重複的數據,統計的結果也不變,去掉CustomWindowFunction()就正常了 ?很是奇怪

5二、用戶進入產品預約頁面(端埋點上報),並填寫了一些信息(端埋點上報),但半小時內並無產生任何訂單,而後給該類用戶發送一個push。1. 這種需求適合用flink去作嗎?2. 若是適合,說下大概的思路

5三、業務場景是實時獲取數據存redis,請問我要如何按天、按周、按月分別存入redis裏?(比方說過了一天自動換一個位置存redis)

5四、有人 AggregatingState 的例子嗎, 感受官方的例子和 官網的不太同樣?

5五、flink-jdbc這個jar有嗎?怎麼沒找到啊?1.8.0的沒找到,1.6.2的有

5六、現有個關於savepoint的問題,操做流程爲,取消任務時設置保存點,更新任務,從保存點啓動任務;如今遇到個問題,假設我中間某個算子重寫,原先經過state編寫,有用定時器,如今更改後,採用窗口,反正就是實現方式徹底不同;從保存點啓動就會一直報錯,重啓,原先的保存點不能還原,此時就會有不少數據重複等各類問題,如何才能保證數據不丟失,不重複等,恢復到中止的時候,如今想到的是記下kafka的偏移量,再作處理,貌似也不是很好弄,有什麼解決辦法嗎

5七、須要在flink計算app頁面訪問時長,消費Kafka計算後輸出到Kafka。第一條log須要等待第二條log的時間戳計算訪問時長。我想問的是,flink是分佈式的,那麼它可否保證執行的順序性?後來的數據有沒有可能先被執行?

5八、我公司想作實時大屏,現有技術是將業務所需指標實時用spark拉到redis裏存着,而後再用一條spark streaming流計算簡單乘除運算,指標包含了各月份的比較。請問我該如何用flink簡化上述流程?

5九、flink on yarn 方式,這樣理解不知道對不對,yarn-session這個腳本其實就是準備yarn環境的,執行run任務的時候,根據yarn-session初始化的yarnDescription 把 flink 任務的jobGraph提交到yarn上去執行

60、一樣的代碼邏輯寫在單獨的main函數中就能夠成功的消費kafka ,寫在一個spring boot的程序中,接受外部請求,而後執行相同的邏輯就不能消費kafka。你遇到過嗎?能給一些查問題的建議,或者在哪裏打個斷點,能看到爲何消費不到kafka的消息呢?

6一、請問下flink能夠實現一個流中同時存在訂單表和訂單商品表的數據 二者是一對多的關係 能實現獲得 以訂單表爲主 一個訂單多個商品 這種需求嘛

6二、在用中間狀態的時候,若是中間一些信息保存在state中,有沒有必要在redis中再保存一份,來作第三方的存儲。

6三、可否出一期flink state的文章。什麼場景下用什麼樣的state?如,最簡單的,實時累加update到state。

6四、flink的雙流join博主有使用的經驗嗎?會有什麼常見的問題嗎

6五、窗口觸發的條件問題

6六、flink 定時任務怎麼作?有相關的demo麼?

6七、流式處理過程當中數據的一致性如何保證或者如何檢測

6八、重啓flink單機集羣,還報job not found 異常。

6九、kafka的數據是用 org.apache.kafka.common.serialization.ByteArraySerialize序列化的,flink這邊消費的時候怎麼經過FlinkKafkaConsumer建立DataStream

70、如今公司有一個需求,一些用戶的支付日誌,經過sls收集,要把這些日誌處理後,結果寫入到MySQL,關鍵這些日誌可能連着來好幾條纔是一個用戶的,由於發起請求,響應等每一個環節都有相應的日誌,這幾條日誌綜合處理才能獲得最終的結果,請問博主有什麼好的方法沒有?

7一、flink 支持hadoop 主備麼?hadoop主節點掛了 flink 會切換到hadoop 備用節點?

7二、請教你們: 實際 flink 開發中用 scala 多仍是 java多些?剛入手 flink 大數據 scala 須要深刻學習麼?

7三、我使用的是flink是1.7.2最近用了split的方式分流,可是底層的SplitStream上卻標註爲Deprecated,請問是官方不推薦使用分流的方式嗎?

7四、KeyBy 的正確理解,和數據傾斜問題的解釋

7五、用flink時,遇到個問題 checkpoint大概有2G左右, 有背壓時,flink會重啓有遇到過這個問題嗎

7六、flink使用yarn-session方式部署,如何保證yarn-session的穩定性,若是yarn-session掛了,須要從新部署一個yarn-session,如何恢復以前yarn-session上的job呢,以前的checkpoint還能使用嗎?

7七、我想請教一下關於sink的問題。我如今的需求是從Kafka消費Json數據,這個Json數據字段可能會增長,而後將拿到的json數據以parquet的格式存入hdfs。如今我能夠拿到json數據的schema,可是在保存parquet文件的時候不知道怎麼處理。一是flink沒有專門的format parquet,二是對於可變字段的Json怎麼處理成parquet比較合適?

7八、flink如何在較大的數據量中作去重計算。

7九、flink能在沒有數據的時候也定時執行算子嗎?

80、使用rocksdb狀態後端,自定義pojo怎麼實現序列化和反序列化的,有相關demo麼?

8一、check point 總是失敗,是否是自定義的pojo問題?到本地能夠,到hdfs就不行,網上也有不少相似的問題 都沒有一個很好的解釋和解決方案

8二、cep規則如圖,當start事件進入時,時間00:00:15,然後進入end事件,時間00:00:40。我發現規則沒法命中。請問within 是從start事件開始計時?仍是跟window同樣根據系統時間劃分的?若是是後者,請問怎麼配置才能從start開始計時?

8三、Flink聚合結果直接寫Mysql的冪等性設計問題

8四、Flink job打開了checkpoint,用的rocksdb,經過觀察hdfs上checkpoint目錄,爲啥算副本總量會暴增爆減

8五、[Flink 提交任務的 jar包能夠指定路徑爲 HDFS 上的嗎]()

8六、在flink web Ui上提交的任務,設置的並行度爲2,flink是stand alone部署的。兩個任務都正常的運行了幾天了,今天有個地方邏輯須要修改,因而將任務cancel掉(在命令行cancel也試了),結果taskmanger掛掉了一個節點。後來用其餘任務試了,也一樣會致使節點掛掉

8七、一個配置動態更新的問題折騰很久(配置用個靜態的map變量存着,有個線程定時去數據庫撈數據而後存在這個map裏面更新一把),本地 idea 調試沒問題,集羣部署就一直報 空指針異常。下游的算子使用這個靜態變量map去get key在集羣模式下會出現這個空指針異常,估計就是拿不到 map

8八、批量寫入MySQL,完成HBase批量寫入

8九、用flink清洗數據,其中要訪問redis,根據redis的結果來決定是否把數據傳遞到下流,這有可能實現嗎?

90、監控頁面流處理的時候這個發送和接收字節爲0。

9一、sink到MySQL,若是直接用idea的話能夠運行,而且成功,大大的代碼上面用的FlinkKafkaConsumer010,而個人Flink版本爲1.7,kafka版本爲2.12,因此當我用FlinkKafkaConsumer010就有問題,因而改成 FlinkKafkaConsumer就能夠直接在idea完成sink到MySQL,可是爲什麼當我把該程序打成Jar包,去運行的時候,就是報FlinkKafkaConsumer找不到呢

9二、SocketTextStreamWordCount中輸入中文統計不出來,請問這個怎麼解決,我猜想應該是須要修改一下代碼,應該是這個例子默認統計英文

9三、 Flink 應用程序本地 ide 裏面運行的時候並行度是怎麼算的?

9四、 請問下flink中對於窗口的全量聚合有apply和process兩種 他們有啥區別呢

9五、不知道大大熟悉Hbase不,我想直接在Hbase中查詢某一列數據,由於有重複數據,因此想使用distinct統計實際數據量,請問Hbase中有沒有相似於sql的distinct關鍵字。若是沒有,想實現這種能夠不?

9六、 來分析一下如今Flink,Kafka方面的就業形勢,以及準備就業該如何準備的這方面內容呢?

9七、 大佬知道flink的dataStream能夠轉換爲dataSet嗎?由於數據須要11分鐘一個批次計算五六個指標,而且涉及好幾步reduce,計算的指標之間有聯繫,用Stream卡住了。

9八、1.如何在同一窗口內實現屢次的聚合,好比像spark中的這樣2.多個實時流的jion能夠用window來處理一批次的數據嗎?

9九、寫的批處理的功能,如今本機跑是沒問題的,就是在linux集羣上出現了問題,就是不知道若是經過本地調用遠程jar包而後傳參數和拿到結果參數返回本機

100、我用standalone開啓一個flink集羣,上傳flink官方用例Socket Window WordCount作測試,開啓兩個parallelism能正常運行,可是開啓4個parallelism後出現錯誤

10一、 有使用AssignerWithPunctuatedWatermarks 的案例Demo嗎?網上找了都是AssignerWithPeriodicWatermarks的,不知道具體怎麼使用?

10二、 有一個datastream(從文件讀取的),而後我用flink sql進行計算,這個sql是一個加總的運算,而後經過retractStreamTableSink能夠把文件作sql的結果輸出到文件嗎?這個輸出到文件的接口是用什麼呢?

10三、 爲啥split這個流設置爲過時的

10四、 須要使用flink table的水印機制控制時間的亂序問題,這種場景下我就使用水印+窗口了,我如今寫的demo遇到了問題,就是在把觸發計算的窗口table(WindowedTable)轉換成table進行sql操做時發現窗口中的數據仍是亂序的,是否是flink table的WindowedTable不支持水印窗口轉table-sql的功能

10五、 Flink 對 SQL 的重視性

10六、 flink job打開了checkpoint,任務跑了幾個小時後就出現下面的錯,截圖是打出來的日誌,有個OOM,又遇到過的沒?

10七、 本地測試是有數據的,以前該任務放在集羣也是有數據的,可能提交過屢次,如今讀不到數據了 group id 也換過了, 只能重啓集羣解決麼?

10八、使用flink清洗數據存到es中,直接在flatmap中對處理出來的數據用es本身的ClientInterface類直接將數據存入es當中,不走sink,這樣的處理邏輯是否是會有問題。

10八、 flink從kafka拿數據(即增量數據)與存量數據進行內存聚合的需求,如今有一個方案就是程序啓動的時候先用flink table將存量數據加載到內存中建立table中,而後將stream的增量數據與table的數據進行關聯聚合後輸出結束,不知道這種方案可行麼。目前我的認爲有兩個主要問題:1是增量數據stream轉化成append table後不知道能與存量的table關聯聚合不,2是聚合後輸出的結果數據是否過於頻繁形成網絡傳輸壓力過大

10九、 設置時間時間特性有什麼區別呢, 分別在什麼場景下使用呢?兩種設置時間延遲有什麼區別呢 , 分別在什麼場景下使用

1十、 flink從rabbitmq中讀取數據,設置了rabbitmq的CorrelationDataId和checkpoint爲EXACTLY_ONCE;若是flink完成一次checkpoint後,在此次checkpoint以前消費的數據都會從mq中刪除。若是某次flink停機更新,那就會出現mq中的一些數據消費可是處於Unacked狀態。在flink又從新開啓後這批數據又會從新消費。那這樣是否是就不能保證EXACTLY_ONCE了

1十一、1. 在Flink checkpoint 中, 像 operator的狀態信息 是在設置了checkpoint 以後自動的進行快照嗎 ?2. 上面這個和咱們手動存儲的 Keyed State 進行快照(這個應該是增量快照)

1十二、如今有個實時商品數,交易額這種統計需求,打算用 flink從kafka讀取binglog日誌進行計算,但binglog涉及到insert和update這種操做時 怎麼處理才能統計準確,避免那種重複計算的問題?

11三、我這邊用flink作實時監控,功能很簡單,就是每條消息作keyby而後三分鐘窗口,而後作些去重操做,觸發閾值則報警,如今問題是同一個時間窗口同一我的的告警會觸發兩次,集羣是三臺機器,standalone cluster,初步結果是三個算子裏有兩個收到了一樣的數據

11四、在使用WaterMark的時候,默認是每200ms去設置一次watermark,那麼每一個taskmanager之間,因爲獲得的數據不一樣,因此每每產生的最大的watermark不一樣。那麼這個時候,是各個taskmanager廣播這個watermark,獲得全局的最大的watermark,仍是說各個taskmanager都各自用本身的watermark。主要沒看到廣播watermark的源碼。不知道是本身觀察不仔細仍是就是沒有廣播這個變量。

11五、如今遇到一個需求,須要在job內部定時去讀取redis的信息,想請教flink能實現像普通程序那樣的定時任務嗎?

11六、有個觸發事件開始聚合,等到數量足夠,或者超時則sink推mq 環境 flink 1.6 用了mapState 記錄觸發事件 1 數據足夠這個OK 2 超時state ttl 1.6支持,可是問題來了,如何在超時時候增長自定義處理?

11七、請問impala這種mpp架構的sql引擎,爲何穩定性比較差呢?

11八、watermark跟並行度相關不是,過於全局了,指望是keyby以後再針對每一個keyed stream 打watermark,這個有什麼好的實踐呢?

11九、請問若是把一個文件的內容讀取成datastream和dataset,有什麼區別嗎??他們都是一條數據一條數據的被讀取嗎?

120、有沒有kylin相關的資料,或者調優的經驗?

12一、flink先從jdbc讀取配置表到流中,另外從kafka中新增或者修改這個配置,這個場景怎麼把兩個流一份配置流?我用的connect,接着發不成廣播變量,再和實體流合併,但在合併時報Exception in thread "main" java.lang.IllegalArgumentException

12二、Flink exactly-once,kafka版本爲0.11.0 ,sink基於FlinkKafkaProducer011 每五分鐘一次checkpoint,可是checkpoint開始後系統直接卡死,at-lease-once 一分鐘能完成的checkpoint, 如今十分鐘沒法完成沒進度仍是0, 不知道哪裏卡住了

12三、flink的狀態是默認存在於內存的(也能夠設置爲rocksdb或hdfs),而checkpoint裏面是定時存放某個時刻的狀態信息,能夠設置hdfs或rocksdb是這樣理解的嗎?

12四、Flink異步IO中,下圖這兩種有什麼區別?爲啥要加 CompletableFuture.supplyAsync,不太明白?

12五、flink的狀態是默認存在於內存的(也能夠設置爲rocksdb或hdfs),而checkpoint裏面是定時存放某個時刻的狀態信息,能夠設置hdfs或rocksdb是這樣理解的嗎?

12六、有個計算場景,從kafka消費兩個數據源,兩個數據結構都有時間段概念,計算須要作的是匹配兩個時間段,匹配到了,就生成一條新的記錄。請問使用哪一個工具更合適,flink table仍是cep?請大神指點一下 我這邊以前的作法,將兩個數據流轉爲table.兩個table over window後join成新的表。結果job跑一會就oom.

12七、一個互聯網公司,或者一個業務系統,若是想作一個全面的監控要怎麼作?有什麼成熟的方案能夠參考交流嗎?有什麼有什麼度量指標嗎?

12八、怎麼深刻學習flink,或者其餘大數據組件,能爲將來秋招找一份大數據相關(計算方向)的工做增長本身的競爭力?

12九、oppo的實時數倉,其中明細層和彙總層都在kafka中,他們的關係庫的實時數據也抽取到kafka的ods,那麼在構建數倉的,須要join 三四個大業務表,業務表會變化,那麼是大的業務表是從kafka的ods讀取嗎?實時數倉,多個大表join能夠嗎

130、Tuple類型有什麼方法轉換成json字符串嗎?如今的場景是,結果在存儲到sink中時但願存的是json字符串,這樣應用程序獲取數據比較好轉換一點。若是Tuple很差轉換json字符串,那麼應該以什麼數據格式存儲到sink中

140、端到端的數據保證,是否意味着中間處理程序中斷,也不會形成該批次處理失敗的消息丟失,處理程序從新啓動以後,會再次處理上次未處理的消息

14一、關於flink datastream window相關的。好比我如今使用滾動窗口,統計一週內去重用戶指標,按照正常watermark觸發計算,須要等到當前周的window到達window的endtime時,纔會觸發,這樣指標一週後才能產出結果。我能不能實現一小時觸發一次計算,每次統計截止到當前時間,window中全部到達元素的去重數量。

14二、FLIP-16 Loop Fault Tolerance 是講如今的checkpoint機制沒法在stream loop的時候容錯嗎?如今這個問題解決了沒有呀?

14三、如今的需求是,統計各個key的今日累計值,一分鐘輸出一次。如,各個用戶今日累計點擊次數。這種需求用datastream仍是table API方便點?

14四、本地idea能夠跑的工程,放在standalone集羣上,總報錯,報錯截圖以下,大佬請問這是啥緣由

14五、好比如今用k8s起了一個flink集羣,這時候數據源kafka或者hdfs會在同一個集羣上嗎,仍是會單獨再起一個hdfs/kafka集羣

14六、flink kafka sink 的FlinkFixedPartitioner 分配策略,在並行度小於topic的partitions時,一個並行實例固定的寫消息到固定的一個partition,那麼就有一些partition沒數據寫進去?

14七、基於事件時間,每五分鐘一個窗口,五秒鐘滑動一次,同時watermark的時間一樣是基於事件事件時間的,延遲設爲1分鐘,假如數據流從12:00開始,若是12:07-12:09期間沒有產生任何一條數據,即在12:07-12:09這段間的數據流狀況爲···· (12:07:00,xxx),(12:09:00,xxx)······,那麼窗口[12:02:05-12:07:05],[12:02:10-12:07:10]等幾個窗口的計算是否意味着只有等到,12:09:00的數據到達以後纔會觸發

14八、使用flink1.7,當消費到某條消息(protobuf格式),報Caused by: org.apache.kafka.common.KafkaException: Record batch for partition Notify-18 at offset 1803009 is invalid, cause: Record is corrupt 這個異常。如何設置跳過已損壞的消息繼續消費下一條來保證業務不終斷?我看了官網kafka connectors那裏,說在DeserializationSchema.deserialize(…)方法中返回null,flink就會跳過這條消息,然而依舊報這個異常

14九、是否能夠抽空總結一篇Flink 的 watermark 的原理案例?一直沒搞明白基於事件時間處理時的數據亂序和數據遲到底咋回事

150、flink中rpc通訊的原理,與幾個類的講解,有沒有系統詳細的文章樣,若有求分享,謝謝

15一、Flink中如何使用基於事件時間處理,可是又不使用Watermarks? 我在會話窗口中使用遇到一些問題,圖一是基於處理時間的,測試結果session是基於keyby(用戶)的,圖二是基於事件時間的,不知道是我用法不對仍是怎麼的,測試結果發現並非基於keyby(用戶的),而是全局的session。不知道怎麼修改?

15二、flink實時計算平臺,yarn模式日誌收集怎麼作,爲何會checkpoint失敗,報警處理,後須要作什麼嗎?job監控怎麼作

15三、有flink與jstorm的在不一樣應用場景下, 性能比較的數據嗎? 從網絡上能找大部分都是flink與storm的比較. 在jstorm官網上有一份比較的圖表, 感受參考意義不大, 應該是比較早的flink版本.

15四、爲何使用SessionWindows.withGap窗口的話,State存不了東西呀,每次加1 ,拿出來都是null, 我換成 TimeWindow就沒問題。

15五、請問一下,flink datastream流處理怎麼統計去重指標?官方文檔中只看到批處理有distinct概念。

15六、好全的一篇文章,對比分析 Flink,Spark Streaming,Storm 框架

15七、關於 structured_streaming 的 paper

15八、zookeeper集羣切換領導了,flink集羣項目重啓了就沒有數據的輸入和輸出了,這個該從哪方面入手解決?

15九、我想請教下datastream怎麼和靜態數據join呢

160、時鐘問題致使收到了明天的數據,這時候有什麼比較好的處理方法?看到有人設置一個最大的跳躍閾值,若是當前數據時間 - 歷史最大時間 超過閾值就不更新。如何合理的設計水印,有沒有一些經驗呢?

16一、大佬們flink怎麼定時查詢數據庫?

16二、如今咱們公司有個想法,就是提供一個頁面,在頁面上選擇source sink 填寫上sql語句,而後後臺生成一個flink的做業,而後提交到集羣。功能有點相似於華爲的數據中臺,就是頁面傻瓜式操做。後臺能自動根據相應配置獲得結果。請問拘你的瞭解,能夠實現嗎?如何實現?有什麼好的思路。如今我無從下手

16三、請教一下 flink on yarn 的 ha機制

16四、在通常的流處理以及cep, 均可以對於eventtime設置watermark, 有時可能須要設置相對大一點的值, 這內存壓力就比較大, 有沒有辦法不該用jvm中的內存, 而用堆外內存, 或者其餘緩存, 最好有cache機制, 這樣能夠應對大流量的峯值.

16五、請教一個flink sql的問題。我有兩個聚合後的流表A和B,A和Bjoin獲得C表。在設置state TTL 的時候是直接對C表設置仍是,對A表和B表設置比較好?

16六、spark改寫爲flink,會不會很複雜,還有這二者在SQL方面的支持差異大嗎?

16七、請問flink allowedLateness致使窗口被屢次fire,最終數據重複消費,這種問題怎麼處理,數據是寫到es中

16八、設置taskmanager.numberOfTaskSlots: 4的時候沒有問題,可是cpu沒有壓上去,只用了30%左右,因而設置了taskmanager.numberOfTaskSlots: 8,可是就報錯誤找不到其中一個自定義的類,而後kafka數據就不消費了。爲何?cpu到多少合適?slot是否是和cpu數量一致是最佳配置?kafka分區數多少合適,是否是和slot,parallesim一致最佳?

16九、需求是根據每條日誌切分出須要9個字段,有五個指標再根據9個字段的不一樣組合去作計算。第一個方法是:我目前作法是切分的9個字段開5分鐘大小1分鐘計算一次的滑動窗口窗口,進行一次reduce去重,而後再map取出須要的字段,而後過濾再開5分鐘大小1分鐘計算一次的滑動窗口窗口進行計算保存結果,這個思路遇到的問題是上一個滑動窗口會每一分鐘會計算5分鐘數據,到第二個窗口劃定的5分鐘範圍的數據會有好多重複,這個思路會形成數據重複。第二個方法是:切分的9個字段開5分鐘大小1分鐘計算一次的滑動窗口窗口,再pross方法裏完成全部的過濾,聚合計算,可是再高峯期每分鐘400萬條數據,這個思路擔憂在高峯期flink計算不過來

170、a,b,c三個表,a和c有eventtime,a和c直接join能夠,a和b join後再和c join 就會報錯,這是怎麼回事呢

17一、自定義的source是這樣的(圖一所示) 使用的時候是這樣的(圖二所示),爲何不管 sum.print().setParallelism(2)(圖2所示)的並行度設置成幾最後結果都是這樣的

17二、剛接觸flink,若有問的不合適的地方,請見諒。一、爲何說flink是有狀態的計算?二、這個狀態是什麼?三、狀態存在哪裏

17三、這邊用flink 1.8.1的版本,採用flink on yarn,hadoop版本2.6.0。代碼是一個簡單的滾動窗口統計函數,但啓動的時候報錯,以下圖片。(2)而後我把flink版本換成1.7.1,從新提交到2.6.0的yarn平臺,就能正常運行了。(3)咱們測試集羣hadoop版本是3.0,我用flink 1.8.1版本將這個程序再次打包,提交到3.0版本的yarn平臺,也能正常運行。貌似是flink 1.8.1版本與yarn 2.6.0版本不兼容形成的這個問題

17四、StateBackend我使用的是MemoryStateBackend, State是怎麼釋放內存的,例如我在函數中用ValueState存儲了歷史狀態信息。可是歷史狀態數據我沒有手動釋放,那麼程序會自動釋放麼?仍是一直駐留在內存中

17五、請問老師是否能夠提供一些Apachebeam的學習資料 謝謝

17六、flink 的 DataSet或者DataStream支持索引查詢以及刪除嗎,像spark rdd,若是不支持的話,該轉換成什麼

17七、關於flink的狀態,可否把它當作數據庫使用,相似於內存數據庫,在處理過程當中存業務數據。若是是數據庫能夠算是分佈式數據庫嗎?是否是使用rocksdb這種存儲方式纔算是?支持的單庫大小是否是隻是跟本地機器的磁盤大小相關?若是使用硬盤存儲會不會效率性能有影響

17八、我這邊作了個http sink,想要批量發送數據,不過如今只能用數量控制發送,但最後的幾個記錄無法觸發發送動做,想問下有沒有什麼辦法

17九、請問下如何作定時去重計數,就是根據時間分窗口,窗口內根據id去重計數得出結果,多謝。試了很多辦法,沒有簡單直接辦法

180、我有個job使用了elastic search sink. 設置了批量5000一寫入,可是看es監控顯示每秒只能插入500條。是否是bulkprocessor的currentrequest爲0有關

18一、有docker部署flink的資料嗎

18二、在說明KeyBy的StreamGraph執行過程時,keyBy的ID爲啥是6?根據前面說,ID是一個靜態變量,每取一次就遞增1,我以爲應該是3啊,是我理解錯了嗎

18三、有沒計劃出Execution Graph的遠碼解析

18四、能夠分享下物理執行圖怎樣劃分task,以及task如何執行,還有他們之間數據如何傳遞這塊代碼嘛?

18五、Flink源碼和這個學習項目的結構圖

18六、請問flink1.8,如何作到動態加載外部udf-jar包呢?

18七、同一個Task Manager中不一樣的Slot是怎麼交互的,好比:source處理完要傳遞給map的時候,若是在不一樣的Slot中,他們的內存是相互隔離,是怎麼交互的呢?我猜是經過序列化和反序列化對象,而且經過網絡來進行交互的

18八、大家有沒有這種業務場景。flink從kafka裏面取數據,每一條數據裏面有mongdb表A的id,這時我會在map的時候採用flink的異步IO鏈接A表,而後查詢出A表的字段1,再根據該字段1又須要異步IO去B表查詢字段2,而後又根據字段2去C表查詢字段3…..像這樣的業務場景,若是多來幾種邏輯,我應該用什麼方案最好呢

18九、今天本地運行flink程序,消費socket中的數據,連續只能消費兩條,第三條flink就消費不了了

190、源數據通過過濾後分紅了兩條流,而後再分別提取事件時間和水印,作時間窗口,我測試時一條流沒有數據,另外一條的數據看日誌到了窗口操做那邊就沒走下去,貌似窗口一直沒有等到觸發

19一、有作flink cep的嗎,有資料沒?

19二、麻煩問一下 BucketingSink跨集羣寫,若是任務運行在hadoop A集羣,從kafka讀取數據處理後寫到Hadoo B集羣,即便把core-site.xml和hdfs-site.xml拷貝到代碼resources下,路徑使用hdfs://hadoopB/xxx,會提示ava.lang.RuntimeException: Error while creating FileSystem when initializing the state of the BucketingSink.,跨集羣寫這個問題 flink不支持嗎?

19三、想諮詢下,如何對flink中的datastream和dataset進行數據採樣

19四、一個flink做業常常發生oom,多是什麼緣由致使的。處理流程只有15+字段的解析,redis數據讀取等操做,TM配置10g。業務會在夜間刷數據,qps能打到2500左右~

19五、我看到flink 1.8的狀態過時僅支持Processing Time,那麼若是我使用的是Event time那麼狀態就不會過時嗎

19六、請問我想每隔一小時統計一個屬性從當天零點到當前時間的平均值,這樣的時間窗該如何定義?

19七、flink任務裏面反序列化一個類,報ClassNotFoundException,但是包裏面是有這個類的,有遇到這種狀況嗎?

19八、在構造StreamGraph,相似PartitionTransformmation 這種類型的 transform,爲何要添加成一個虛擬節點,而不是一個實際的物理節點呢?

19九、flink消費kafka的數據寫入到hdfs中,我採用了BucketingSink 這個sink將operator出來的數據寫入到hdfs文件上,並經過在hive中建外部表來查詢這個。但如今有個問題,處於in-progress的文件,hive是沒法識別出來該文件中的數據,可我想能在hive中實時查詢進來的數據,且不想產生不少的小文件,這個該如何處理呢

200、採用Flink單機集羣模式一個jobmanager和兩個taskmanager,機器是單機是24核,如今作個簡單的功能從kafka的一個topic轉知足條件的消息到另外一個topic,topic的分區是30,我設置了程序默認併發爲30,如今每秒消費2w多數據,不夠快,請問能夠怎麼提升job的性能呢?

20一、Flink Metric 源碼分析

等等等,還有不少,複製粘貼的我手累啊 ?

另外裏面還會及時分享 Flink 的一些最新的資料(包括數據、視頻、PPT、優秀博客,持續更新,保證全網最全,由於我知道 Flink 目前的資料還很少)

關於本身對 Flink 學習的一些想法和建議

Flink 全網最全資料獲取,持續更新,點擊能夠獲取

再就是星球用戶給我提的一點要求:不按期分享一些本身遇到的 Flink 項目的實戰,生產項目遇到的問題,是如何解決的等經驗之談!

一、如何查看本身的 Job 執行計劃並獲取執行計劃圖

二、當實時告警遇到 Kafka 千萬數據量堆積該咋辦?

三、如何在流數據中比兩個數據的大小?多種解決方法

四、kafka 系列文章

五、Flink環境部署、應用配置及運行應用程序

六、監控平臺該有架構是長這樣子的

七、《大數據「重磅炸彈」——實時計算框架 Flink》專欄系列文章目錄大綱

八、《大數據「重磅炸彈」——實時計算框架 Flink》Chat 付費文章

九、Apache Flink 是如何管理好內存的?

十、Flink On K8s

十一、Flink-metrics-core

十二、Flink-metrics-datadog

1三、Flink-metrics-dropwizard

1四、Flink-metrics-graphite

1五、Flink-metrics-influxdb

1六、Flink-metrics-jmx

1七、Flink-metrics-slf4j

1八、Flink-metrics-statsd

1九、Flink-metrics-prometheus

固然,除了更新 Flink 相關的東西外,我還會更新一些大數據相關的東西,由於我我的以前不是大數據開發,因此如今也要狂補些知識!總之,但願進來的童鞋們一塊兒共同進步!

一、Java 核心知識點整理.pdf

二、假如我是面試官,我會問你這些問題

三、Kafka 系列文章和學習視頻

四、從新定義 Flink 第二期 pdf

五、GitChat Flink 文章答疑記錄

六、Java 併發課程要掌握的知識點

七、Lightweight Asynchronous Snapshots for Distributed Dataflows

八、Apache Flink™- Stream and Batch Processing in a Single Engine

九、Flink狀態管理與容錯機制

十、Flink 流批一體的技術架構以及在阿里 的實踐

十一、Flink Checkpoint-輕量級分佈式快照

十二、Flink 流批一體的技術架構以及在阿里 的實踐

1三、Stream Processing with Apache Flink pdf

1四、Flink 結合機器學習算法的監控平臺實踐

1五、《大數據重磅炸彈-實時計算Flink》預備篇——大數據實時計算介紹及其經常使用使用場景 pdf 和 視頻

1六、《大數據重磅炸彈-實時計算Flink》開篇詞 pdf 和 視頻

1七、四本 Flink 書

1八、流處理系統 的相關 paper

1九、Apache Flink 1.9 特性解讀

20、打造基於Flink Table API的機器學習生態

2一、基於Flink on Kubernetes的大數據平臺

2二、基於Apache Flink的高性能機器學習算法庫

2三、Apache Flink在快手的應用與實踐

2四、Apache Flink-1.9與Hive的兼容性

2五、打造基於Flink Table API的機器學習生態

2六、流處理系統 的相關 paper