Flink 全網最全資源(視頻、博客、PPT、入門、實戰、源碼解析、問答等持續更新)

Flink 學習

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

本項目結構

博客

一、Flink 從0到1學習 —— Apache Flink 介紹java

二、Flink 從0到1學習 —— Mac 上搭建 Flink 1.6.0 環境並構建運行簡單程序入門mysql

三、Flink 從0到1學習 —— Flink 配置文件詳解git

四、Flink 從0到1學習 —— Data Source 介紹github

五、Flink 從0到1學習 —— 如何自定義 Data Source ?web

六、Flink 從0到1學習 —— Data Sink 介紹面試

七、Flink 從0到1學習 —— 如何自定義 Data Sink ?redis

八、Flink 從0到1學習 —— Flink Data transformation(轉換)spring

九、Flink 從0到1學習 —— 介紹 Flink 中的 Stream Windowssql

十、Flink 從0到1學習 —— Flink 中的幾種 Time 詳解

十一、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 ElasticSearch

十二、Flink 從0到1學習 —— Flink 項目如何運行?

1三、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 Kafka

1四、Flink 從0到1學習 —— Flink JobManager 高可用性配置

1五、Flink 從0到1學習 —— Flink parallelism 和 Slot 介紹

1六、Flink 從0到1學習 —— Flink 讀取 Kafka 數據批量寫入到 MySQL

1七、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 RabbitMQ

1八、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 HBase

1九、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 HDFS

20、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 Redis

2一、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 Cassandra

2二、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 Flume

2三、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 InfluxDB

2四、Flink 從0到1學習 —— Flink 讀取 Kafka 數據寫入到 RocketMQ

2五、Flink 從0到1學習 —— 你上傳的 jar 包藏到哪裏去了

2六、Flink 從0到1學習 —— 你的 Flink job 日誌跑到哪裏去了

Flink 源碼項目結構

學習資料

另外我本身整理了些 Flink 的學習資料,目前已經所有放到微信公衆號了。 你能夠加個人微信:zhisheng_tian,而後回覆關鍵字:Flink 便可無條件獲取到,轉載請聯繫本人獲取受權,違者必究。

更多私密資料請加入知識星球!

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

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

一、Flink 源碼解析 —— 源碼編譯運行

二、Flink 源碼解析 —— 項目結構一覽

三、Flink 源碼解析—— local 模式啓動流程

四、Flink 源碼解析 —— standalonesession 模式啓動流程

五、Flink 源碼解析 —— Standalone Session Cluster 啓動流程深度分析之 Job Manager 啓動

六、Flink 源碼解析 —— Standalone Session Cluster 啓動流程深度分析之 Task Manager 啓動

七、Flink 源碼解析 —— 分析 Batch WordCount 程序的執行過程

八、Flink 源碼解析 —— 分析 Streaming WordCount 程序的執行過程

九、Flink 源碼解析 —— 如何獲取 JobGraph?

十、Flink 源碼解析 —— 如何獲取 StreamGraph?

十一、Flink 源碼解析 —— Flink JobManager 有什麼做用?

十二、Flink 源碼解析 —— Flink TaskManager 有什麼做用?

1三、Flink 源碼解析 —— JobManager 處理 SubmitJob 的過程

1四、Flink 源碼解析 —— TaskManager 處理 SubmitJob 的過程

1五、Flink 源碼解析 —— 深度解析 Flink Checkpoint 機制

1六、Flink 源碼解析 —— 深度解析 Flink 序列化機制

1七、Flink 源碼解析 —— 深度解析 Flink 是如何管理好內存的?

除了《從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 裏面運行的時候並行度是怎麼算的?

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

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

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

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

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

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

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

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

四、kafka 系列文章

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

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

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

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

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

十、Flink On K8s

固然,除了更新 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

相關文章
相關標籤/搜索