詳解flink java基礎(一)

文章目錄

      • 1.流式處理flink介紹
      • 2.Flink SQL介紹
      • 3. Flink Runtime
      • 4.使用flink集成kafka
      • 5.使用Flink SQL進行有狀態流處理
      • 6.Event time & Watermarks
      • 7. flink Checkpoints & recovery

1.流式處理flink介紹

實時服務依賴流式處理:
在這里插入圖片描述
flink優點:

  • 高性能
  • 豐富的特性:
    在這里插入圖片描述
    構建flink的4個基礎:
    在這里插入圖片描述
    Streaming:
    在這里插入圖片描述
  • 流是有序的事件
  • 業務數據總是一個流:有界流 或無界流
  • 對于flink,批處理僅是一個特殊的場景,在流運行時
    在這里插入圖片描述
    The job Graph(Topology):
    • 運行中的flink 應用稱作job
    • 運行中的flink應用(job)以及通過數據管道處理稱作JobGraph(工作圖)
    • Job Graph是一個有向圖(DAG),數據流從source流向sink,被operator處理
      在這里插入圖片描述

Stream processing:

  • Parallel:是由于分隔事件流成并行sub-stream,各自可以獨立處理
    在這里插入圖片描述

  • Forward:重定向一個事件流,優化上下游銜接非常有效

  • Repartition(分隔)
    在這里插入圖片描述

  • Rebalance: rebalance非常昂貴,就像網絡抖動一樣,需要序列化每個事件,并且使用網絡
    在這里插入圖片描述

  • broadcasting :廣播數據到分布式系統集群

Stream processing with SQL:
在這里插入圖片描述

2.Flink SQL介紹

在這里插入圖片描述
在這里插入圖片描述
例子:
在這里插入圖片描述
在這里插入圖片描述
Flink SQL的特點:
在這里插入圖片描述
在這里插入圖片描述
append-only 、insert-only

Flink SQL 模式:
1. Streaming and Batch
在這里插入圖片描述
2. Streaming only模式
在這里插入圖片描述
3.Batch only 模式:

在這里插入圖片描述

通過docker運行flink SQL CLI

  • 安裝dockerdesktop

  • 執行 docker compose version

  • 克隆 flink練習代碼倉:https://github.com/confluentinc/learn-apache-flink-101-exercises.git

  • 進入本地clone項目的根目錄,執行構建docker compose命令:
    在這里插入圖片描述

  • 運行sql-client
    docker compose run sql-client

  • 但sql-client啟動成功,可以看到flink SQL CLi提示

    Flink SQL>
    
  • 然后可以進行 Flink SQL的一些操作

3. Flink Runtime

運行時架構(runtime Architecture)
在這里插入圖片描述
Flink streaming VS Batch

StreamingBatch
Bounded or unbounded streamsonly bounded streams
Entrie pipeline must always be runningExecution proceeds in stages,running as needed
Input must be processed as it arrivesInput may be pre-sorted by time and key
Results are reported as they become readyResults are repored at the end of the job
Failure recovery resumes from a recent snapshotFailure recovery does a reset and full restart
Flink guarantees effectively exactly-once result ,despite out-of-order data and restarts due to failures.Effectively exactly-once gurantees are more straightforward

flink task有三種狀態:

  1. idle
  2. busy
  3. backpressured:the task is unable to send output downstream because the downstream task is busy

總結

streaming 提供了立刻響應的場景,如下:

  • 監控告警
  • 欺詐檢測(fraud detection)

Batch processing 更好,因為它效率更高效

4.使用flink集成kafka

kafka主要組件
在這里插入圖片描述
kafka架構
在這里插入圖片描述
在這里插入圖片描述

kafka事件結構:
在這里插入圖片描述
flink table 與topic的映射關系
在這里插入圖片描述
映射kafka topics成flink table

flink format
在這里插入圖片描述
flink需要知道協作的kafka topic的數據格式是什么

在這里插入圖片描述

在這里插入圖片描述
Flink可以作為kafka,實時應用、流水線的計算層

5.使用Flink SQL進行有狀態流處理

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

6.Event time & Watermarks

Time
在這里插入圖片描述
out-of-order event time
在這里插入圖片描述
watermarks
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
kafka source operator 從kafka partition 讀取
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
waermarkark就是分區的最小值,如:1:05
在這里插入圖片描述
一旦watermark被生成,source會發送它到下游

在這里插入圖片描述
在這里插入圖片描述
flink job不產生結果的原因分析以及解決方法:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
水印的使用(watermark):
在這里插入圖片描述

7. flink Checkpoints & recovery

1.checkpoint

  • checkpoint就是flink自動產生的快照,主要用于失敗恢復
  • savepoint是一種手動創建的快照,主要為了運維的目的,如:有狀態的升級->升級flink到最新的版本

flink使用Chandy-Lamport 分布式快照算法解決以下問題

  • flink生成不是期望的結果
  • flink生成重復
    在這里插入圖片描述
    在這里插入圖片描述
    2.故障恢復(recovery)
    在這里插入圖片描述
    在這里插入圖片描述
    水印衡量著無序流中事件時間的進度

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919333.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919333.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919333.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Day119 持續集成docker+jenkins

Day119 dockerjenkins 1.Dockerfile Dockerfile 可以用于項目部署。通過編寫 Dockerfile,可以將整個項目及其所需的依賴項打包到一個 Docker 鏡像中,然后在任何支持 Docker 的環境中部署和運行該鏡像 Dockerfile 是用于構建 Docker 鏡像的文本文件。它包…

Vue3+Vite MPA多頁面應用開發完整指南 – 從零搭建到部署優化

什么是 MPA 多頁面應用 MPA(Multi-Page Application)是由多個獨立的 HTML 頁面組成的應用,每個頁面都有獨立的入口文件。與 SPA 不同,MPA 的每個頁面都是獨立的,頁面間通過鏈接跳轉,適合大型項目或需要 SE…

【企業級架構】企業戰略到技術落地的全流程【第一篇】

目錄 一、人生藍圖與企業羅盤:戰略視角下的成長架構 1. 大學畢業迷茫期 → 企業未制定戰略前:無方向、無目標? 2. 制定職業規劃 → 企業戰略制定:明確 “去哪” 和 “分幾步走”? 3. 盤點自身能力差距 → 業務架構梳理:搞清…

(二) Python + 地球信息科學與技術 = 經典案例分析

目錄 四、農業精準施肥與產量預測(植被指數 機器學習) 五、公共場所踩踏事故預警系統(時空大數據 Web 開發) 六、森林火災智能識別與救援路徑規劃(遙感 路徑優化) 七、海岸線侵蝕動態監測與防護&…

從需求到部署全套方案:餐飲服務許可證數據可視化分析系統的大數據技術實戰

🎓 作者:計算機畢設小月哥 | 軟件開發專家 🖥? 簡介:8年計算機軟件程序開發經驗。精通Java、Python、微信小程序、安卓、大數據、PHP、.NET|C#、Golang等技術棧。 🛠? 專業服務 🛠? 需求定制化開發源碼提…

Qt 關于QString和std::string數據截斷的問題- 遇到\0或者0x00如何處理?

Qt 關于QString和std::string數據截斷的問題- 遇到\0或者0x00如何處理?引言一、解決方案二、使用QByteArray注意事項引言 在Qt開發中,使用QString或std::string獲取、發送字符串時,遇到\0(空字符)或者0x00(十六進制表示)可能導致數據截斷&am…

Spring Cloud LoadBalancer 最佳實踐

Ribbon 曾經是 Spring Cloud 家族默認的客戶端負載均衡工具,而 Spring Cloud LoadBalancer (SCLB) 是官方替換 Ribbon 的新實現。表面上它們都解決 “服務調用時選哪個實例” 的問題,但在理念、架構和生態上差異不小。一、Ribbon vs SCLB1. 定位和生態…

【STM32】SPI 與 Flash 筆記

1?? SPI(Serial Peripheral Interface,串行外設接口)英文解釋: Serial:串行Peripheral:外設Interface:接口用途:MCU 與外部設備(Flash、傳感器等)高速數據通…

抽象工廠設計模式 Abstract Factory

抽象工廠抽象工廠設計模式是一種創建模式,它提供了一個用于創建相關或從屬對象族的接口,而無需指定其具體類。 它在以下情況下特別有用: 您需要創建必須一起使用并且是一致系列的一部分的對象(例如,按鈕、復選框和菜單…

WSL 下的虛擬網卡配置

第一部分:Windows 虛擬網卡創建指南 1. 原理 在 Windows 里,“虛擬網卡”本質是由網絡驅動在系統網絡棧中創建的一個 軟件網卡接口。它的作用和物理網卡類似,只不過不直接連接到物理硬件,而是通過內核網絡驅動與宿主機網絡進行交換…

Dify web前端源碼本地部署詳細教程

目錄 1. 先啟動API 2. 啟動worker服務 3. 啟動web 4. 訪問登陸地址 在前面的文章中,Dify源碼部署,搭建二次開發環境(一) 已經記錄了如何在本地啟動API、work、中間件。在本篇文章中,將概述如何啟動dify web源碼項…

CVPR 2025|英偉達聯合牛津大學提出面向3D醫學成像的統一分割基礎模型

在 2D 自然圖像和視頻的交互式分割領域,基礎模型已引發廣泛關注,這也促使人們開始構建用于醫學成像的 3D 基礎模型。然而,3D 醫學成像存在的領域差異以及臨床應用場景,要求開發一種有別于現有 2D 解決方案的專用模型。具體而言&am…

解決“Win7共享文件夾其他電腦網絡無法發現共享電腦名稱”的問題

要讓運行 Windows 7 的電腦被局域網中其他設備(包括另一臺電腦、手機、NAS 等)“發現”,必須同時滿足三個條件: 網絡發現功能已啟用;對應的后臺服務已啟動;防火墻規則放行。 下面給出最簡、最穩妥的 3 步設…

Python pyzmq 庫詳解:從入門到高性能分布式通信

一、前言 在現代軟件開發中,進程間通信(IPC)與分布式系統通信已經成為基礎能力。無論是構建一個微服務架構的后端,還是實現大規模并行計算任務,如何讓不同的進程或節點之間高效地傳遞消息,都是核心問題。 傳…

CentOS 7更換國內鏡像源

第一步:檢查系統版本 在修改任何配置之前,先確定你的 CentOS 版本,因為不同版本的鏡像源配置文件不同。 cat /etc/redhat-release這個命令會顯示你的 CentOS 版本信息,例如 CentOS Linux release 7.9.2009 (Core)。從你的錯誤日志…

詳解 doclayout_yolo:Python 文檔布局檢測

目錄一、doclayout_yolo 核心功能二、安裝方法1. 直接安裝2. 通過 PDF-Extract-Kit 安裝三、使用示例1. 快速體驗(HuggingFace Demo)2. 本地推理代碼3. 批量處理四、技術亮點五、應用場景六、其他說明1.相關資源2. 注意事項doclayout_yolo 是一個基于 Y…

貓頭虎AI分享|一款Coze、Dify類開源AI應用超級智能體Agent快速構建工具:FastbuildAI

貓頭虎AI分享|一款 Coze、Dify 類開源 AI 應用超級智能體快速構建工具:FastbuildAI 區別在于它的易用度和商業閉環功能 摘要:FastbuildAI 是一個開源的 AI 應用“快速構建 商業化閉環”工具。它讓個人開發者與小團隊用 可視化 零代碼 的方…

GitLab 安全漏洞 CVE-2025-6186 解決方案

本分分享極狐GitLab 補丁版本 18.2.2, 18.1.4, 18.0.6 的詳細內容。這幾個版本包含重要的缺陷和安全修復代碼,我們強烈建議所有私有化部署用戶應該立即升級到上述的某一個版本。對于極狐GitLab SaaS,技術團隊已經進行了升級,無需用戶采取任何…

【K8s】harbor安裝與推送鏡像

引言 在開發中,先推送鏡像到docker,然后直接在docker運行。但是在K8S中,需要動態創建或者分配機器,這里需要將鏡像推送到harbor倉庫,然后再從倉庫拉取到每臺集群機器。 docker安裝harbor:https://learnku…

FPGA讀取AHT20溫濕度模塊思路及實現,包含遇到的問題(IIC協議)

一.閱讀官方手冊 手冊在下方網址下載,該模塊在各個網店平臺均有銷售 百度網盤 請輸入提取碼 手冊重點關注IIC地址(讀地址0x71,寫地址0x70)、IIC命令和讀寫數據邏輯,手冊寫的比較簡單(感覺很多細節沒到位…