https://github.com/zhisheng17/flink-learningphp
麻煩路過的各位親給這個項目點個 star,太不易了,寫了這麼多,算是對我堅持下來的一種鼓勵吧!java
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 目錄下:面試
一、Flink 從0到1學習 —— Apache Flink 介紹redis
二、Flink 從0到1學習 —— Mac 上搭建 Flink 1.6.0 環境並構建運行簡單程序入門算法
三、Flink 從0到1學習 —— Flink 配置文件詳解
四、Flink 從0到1學習 —— Data Source 介紹
五、Flink 從0到1學習 —— 如何自定義 Data Source ?
六、Flink 從0到1學習 —— Data Sink 介紹
七、Flink 從0到1學習 —— 如何自定義 Data Sink ?
八、Flink 從0到1學習 —— Flink Data transformation(轉換)
九、Flink 從0到1學習 —— 介紹 Flink 中的 Stream Windows
十、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 源碼解析 —— 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八、Flink Metrics 源碼解析 —— Flink-metrics-core
1九、Flink Metrics 源碼解析 —— Flink-metrics-datadog
20、Flink Metrics 源碼解析 —— Flink-metrics-dropwizard
2一、Flink Metrics 源碼解析 —— Flink-metrics-graphite
2二、Flink Metrics 源碼解析 —— Flink-metrics-influxdb
2三、Flink Metrics 源碼解析 —— Flink-metrics-jmx
2四、Flink Metrics 源碼解析 —— Flink-metrics-slf4j
2五、Flink Metrics 源碼解析 —— Flink-metrics-statsd
2六、Flink Metrics 源碼解析 —— Flink-metrics-prometheus
除了《從1到100深刻學習Flink》源碼學習這個系列文章,《從0到1學習Flink》的案例文章也會優先在知識星球更新,讓你們先經過一些 demo 學習 Flink,再去深刻源碼學習!
若是學習 Flink 的過程當中,遇到什麼問題,能夠在裏面提問,我會優先解答,這裏作個抱歉,本身平時工做也挺忙,微信的問題不能作所有作一些解答, 但確定會優先回復給知識星球的付費用戶的,慶幸的是如今星球裏的活躍氛圍仍是能夠的,有很多問題經過提問和解答的方式沉澱了下來。
一、爲什麼我使用 ValueState 保存狀態 Job 恢復是狀態沒恢復?
二、flink中watermark到底是如何生成的,生成的規則是什麼,怎麼用來處理亂序數據
三、消費kafka數據的時候,若是遇到了髒數據,或者是不符合規則的數據等等怎麼處理呢?
四、在Kafka 集羣中怎麼指定讀取/寫入數據到指定broker或從指定broker的offset開始消費?
六、jobmanager掛掉後,提交的job怎麼不通過手動從新提交執行?
八、經過flink 儀表盤提交的jar 是存儲在哪一個目錄下?
九、從Kafka消費數據進行etl清洗,把結果寫入hdfs映射成hive表,壓縮格式、hive直接可以讀取flink寫出的文件、按照文件大小或者時間滾動生成文件
十一、flink 啓動時不自動建立 上傳jar的路徑,能指定一個建立好的目錄嗎
十二、Flink sink to es 集羣上報 slot 不夠,單機跑是好的,爲何?
1三、Fllink to elasticsearch如何建立索引文檔期時間戳?
1四、blink有沒有api文檔或者demo,是否建議blink用於生產環境。
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二、flink on yarn jobmanager的HA須要怎麼配置。仍是說yarn給管理了
2五、不採用yarm部署flink,還有其餘的方案嗎? 主要想解決服務器重啓後,flink服務怎麼自動拉起? jobmanager掛掉後,提交的job怎麼不通過手動從新提交執行?
2六、在一個 Job 裏將同份數據昨晚清洗操做後,sink 到後端多個地方(看業務需求),如何保持一致性?(一個sink出錯,另外的也保證不能插入)
2七、flink sql任務在某個特定階段會發生tm和jm丟失心跳,是否是因爲gc時間過長呢,
2九、一個task slot 只能同時運行一個任務仍是多個任務呢?若是task slot運行的任務比較大,會出現OOM的狀況嗎?
30、大家怎麼對線上flink作監控的,若是整個程序失敗了怎麼自動重啓等等
3一、flink cep規則動態解析有接觸嗎?有沒有成型的框架?
3二、每個Window都有一個watermark嗎?window是怎麼根據watermark進行觸發或者銷燬的?
3三、 CheckPoint與SavePoint的區別是什麼?
3四、flink能夠在算子中共享狀態嗎?或者大佬你有什麼方法能夠共享狀態的呢?
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八、reduce方法後 那個交易時間 怎麼不是最新的,是第一次進入的那個時間,
5二、用戶進入產品預約頁面(端埋點上報),並填寫了一些信息(端埋點上報),但半小時內並無產生任何訂單,而後給該類用戶發送一個push。 1. 這種需求適合用flink去作嗎?2. 若是適合,說下大概的思路
5三、業務場景是實時獲取數據存redis,請問我要如何按天、按周、按月分別存入redis裏?(比方說過了一天自動換一個位置存redis)
5四、有人 AggregatingState 的例子嗎, 感受官方的例子和 官網的不太同樣?
5五、flink-jdbc這個jar有嗎?怎麼沒找到啊?1.8.0的沒找到,1.6.2的有
6一、請問下flink能夠實現一個流中同時存在訂單表和訂單商品表的數據 二者是一對多的關係 能實現獲得 以訂單表爲主 一個訂單多個商品 這種需求嘛
6二、在用中間狀態的時候,若是中間一些信息保存在state中,有沒有必要在redis中再保存一份,來作第三方的存儲。
6三、可否出一期flink state的文章。什麼場景下用什麼樣的state?如,最簡單的,實時累加update到state。
6四、flink的雙流join博主有使用的經驗嗎?會有什麼常見的問題嗎
6五、窗口觸發的條件問題
6八、重啓flink單機集羣,還報job not found 異常。
7一、flink 支持hadoop 主備麼? hadoop主節點掛了 flink 會切換到hadoop 備用節點?
7二、請教你們: 實際 flink 開發中用 scala 多仍是 java多些? 剛入手 flink 大數據 scala 須要深刻學習麼?
7三、我使用的是flink是1.7.2最近用了split的方式分流,可是底層的SplitStream上卻標註爲Deprecated,請問是官方不推薦使用分流的方式嗎?
7五、用flink時,遇到個問題 checkpoint大概有2G左右, 有背壓時,flink會重啓有遇到過這個問題嗎
80、使用rocksdb狀態後端,自定義pojo怎麼實現序列化和反序列化的,有相關demo麼?
8一、check point 總是失敗,是否是自定義的pojo問題?到本地能夠,到hdfs就不行,網上也有不少相似的問題 都沒有一個很好的解釋和解決方案
8四、Flink job打開了checkpoint,用的rocksdb,經過觀察hdfs上checkpoint目錄,爲啥算副本總量會暴增爆減
8五、Flink 提交任務的 jar包能夠指定路徑爲 HDFS 上的嗎
8九、用flink清洗數據,其中要訪問redis,根據redis的結果來決定是否把數據傳遞到下流,這有可能實現嗎?
9二、SocketTextStreamWordCount中輸入中文統計不出來,請問這個怎麼解決,我猜想應該是須要修改一下代碼,應該是這個例子默認統計英文
9三、 Flink 應用程序本地 ide 裏面運行的時候並行度是怎麼算的?
9四、 請問下flink中對於窗口的全量聚合有apply和process兩種 他們有啥區別呢
9六、 來分析一下如今Flink,Kafka方面的就業形勢,以及準備就業該如何準備的這方面內容呢?
9七、 大佬知道flink的dataStream能夠轉換爲dataSet嗎?由於數據須要11分鐘一個批次計算五六個指標,而且涉及好幾步reduce,計算的指標之間有聯繫,用Stream卡住了。
9八、1.如何在同一窗口內實現屢次的聚合,好比像spark中的這樣2.多個實時流的jion能夠用window來處理一批次的數據嗎?
9九、寫的批處理的功能,如今本機跑是沒問題的,就是在linux集羣上出現了問題,就是不知道若是經過本地調用遠程jar包而後傳參數和拿到結果參數返回本機
10一、 有使用AssignerWithPunctuatedWatermarks 的案例Demo嗎?網上找了都是AssignerWithPeriodicWatermarks的,不知道具體怎麼使用?
10三、 爲啥split這個流設置爲過時的
10五、 Flink 對 SQL 的重視性
10六、 flink job打開了checkpoint,任務跑了幾個小時後就出現下面的錯,截圖是打出來的日誌,有個OOM,又遇到過的沒?
10七、 本地測試是有數據的,以前該任務放在集羣也是有數據的,可能提交過屢次,如今讀不到數據了 group id 也換過了, 只能重啓集羣解決麼?
10八、使用flink清洗數據存到es中,直接在flatmap中對處理出來的數據用es本身的ClientInterface類直接將數據存入es當中,不走sink,這樣的處理邏輯是否是會有問題。
10九、 設置時間時間特性有什麼區別呢, 分別在什麼場景下使用呢?兩種設置時間延遲有什麼區別呢 , 分別在什麼場景下使用
11五、如今遇到一個需求,須要在job內部定時去讀取redis的信息,想請教flink能實現像普通程序那樣的定時任務嗎?
11七、請問impala這種mpp架構的sql引擎,爲何穩定性比較差呢?
11八、watermark跟並行度相關不是,過於全局了,指望是keyby以後再針對每一個keyed stream 打watermark,這個有什麼好的實踐呢?
11九、請問若是把一個文件的內容讀取成datastream和dataset,有什麼區別嗎??他們都是一條數據一條數據的被讀取嗎?
12三、flink的狀態是默認存在於內存的(也能夠設置爲rocksdb或hdfs),而checkpoint裏面是定時存放某個時刻的狀態信息,能夠設置hdfs或rocksdb是這樣理解的嗎?
12四、Flink異步IO中,下圖這兩種有什麼區別?爲啥要加 CompletableFuture.supplyAsync,不太明白?
12五、flink的狀態是默認存在於內存的(也能夠設置爲rocksdb或hdfs),而checkpoint裏面是定時存放某個時刻的狀態信息,能夠設置hdfs或rocksdb是這樣理解的嗎?
12七、一個互聯網公司,或者一個業務系統,若是想作一個全面的監控要怎麼作?有什麼成熟的方案能夠參考交流嗎?有什麼有什麼度量指標嗎?
12八、怎麼深刻學習flink,或者其餘大數據組件,能爲將來秋招找一份大數據相關(計算方向)的工做增長本身的競爭力?
140、端到端的數據保證,是否意味着中間處理程序中斷,也不會形成該批次處理失敗的消息丟失,處理程序從新啓動以後,會再次處理上次未處理的消息
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 的 watermark 的原理案例?一直沒搞明白基於事件時間處理時的數據亂序和數據遲到底咋回事
150、flink中rpc通訊的原理,與幾個類的講解,有沒有系統詳細的文章樣,若有求分享,謝謝
15二、flink實時計算平臺,yarn模式日誌收集怎麼作,爲何會checkpoint失敗,報警處理,後須要作什麼嗎?job監控怎麼作
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 sql的問題。我有兩個聚合後的流表A和B,A和Bjoin獲得C表。在設置state TTL 的時候是直接對C表設置仍是,對A表和B表設置比較好?
16六、spark改寫爲flink,會不會很複雜,還有這二者在SQL方面的支持差異大嗎?
16七、請問flink allowedLateness致使窗口被屢次fire,最終數據重複消費,這種問題怎麼處理,數據是寫到es中
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五、請問老師是否能夠提供一些Apachebeam的學習資料 謝謝
17六、flink 的 DataSet或者DataStream支持索引查詢以及刪除嗎,像spark rdd,若是不支持的話,該轉換成什麼
17八、我這邊作了個http sink,想要批量發送數據,不過如今只能用數量控制發送,但最後的幾個記錄無法觸發發送動做,想問下有沒有什麼辦法
17九、請問下如何作定時去重計數,就是根據時間分窗口,窗口內根據id去重計數得出結果,多謝。試了很多辦法,沒有簡單直接辦法
180、我有個job使用了elastic search sink. 設置了批量5000一寫入,可是看es監控顯示每秒只能插入500條。是否是bulkprocessor的currentrequest爲0有關
18二、在說明KeyBy的StreamGraph執行過程時,keyBy的ID爲啥是6? 根據前面說,ID是一個靜態變量,每取一次就遞增1,我以爲應該是3啊,是我理解錯了嗎
18四、能夠分享下物理執行圖怎樣劃分task,以及task如何執行,還有他們之間數據如何傳遞這塊代碼嘛?
18六、請問flink1.8,如何作到動態加載外部udf-jar包呢?
18九、今天本地運行flink程序,消費socket中的數據,連續只能消費兩條,第三條flink就消費不了了
190、源數據通過過濾後分紅了兩條流,而後再分別提取事件時間和水印,作時間窗口,我測試時一條流沒有數據,另外一條的數據看日誌到了窗口操做那邊就沒走下去,貌似窗口一直沒有等到觸發
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,爲何要添加成一個虛擬節點,而不是一個實際的物理節點呢?
等等等,還有不少,複製粘貼的我手累啊 😂
另外裏面還會及時分享 Flink 的一些最新的資料(包括數據、視頻、PPT、優秀博客,持續更新,保證全網最全,由於我知道 Flink 目前的資料還很少)
再就是星球用戶給我提的一點要求:不按期分享一些本身遇到的 Flink 項目的實戰,生產項目遇到的問題,是如何解決的等經驗之談!
七、《大數據「重磅炸彈」——實時計算框架 Flink》專欄系列文章目錄大綱
八、《大數據「重磅炸彈」——實時計算框架 Flink》Chat 付費文章
固然,除了更新 Flink 相關的東西外,我還會更新一些大數據相關的東西,由於我我的以前不是大數據開發,因此如今也要狂補些知識!總之,但願進來的童鞋們一塊兒共同進步!
七、Lightweight Asynchronous Snapshots for Distributed Dataflows
八、Apache Flink™- Stream and Batch Processing in a Single Engine
1三、Stream Processing with Apache Flink pdf
1五、《大數據重磅炸彈-實時計算Flink》預備篇——大數據實時計算介紹及其經常使用使用場景 pdf 和 視頻
1六、《大數據重磅炸彈-實時計算Flink》開篇詞 pdf 和 視頻
1七、四本 Flink 書