Flink學習筆記(一)

流處理

批處理應用于有界數據流的處理,流處理則應用于無界數據流的處理。

有界數據流:輸入數據有明確的開始和結束。

無界數據流:輸入數據沒有明確的開始和結束,或者說數據是無限的,數據通常會隨著時間變化而更新。

在Flink中,應用程序由數據流組成,這些數據流可以經由用戶自定義的算子進行轉換。數據流最終形成有向圖,這些圖以一個或多個Source)開始,以一個或多個接收器Sink)結束。
在這里插入圖片描述

通常來說,轉換Transformation)與算子之間存在一對一的映射關系,但這并不是絕對的,一個轉換也可以包含多個算子。

Flink可以處理來自數據流源(例如Kafka)的實時數據,同時也可以處理來自數據源的歷史數據。

在這里插入圖片描述

并行數據流

Flink中的程序本質上是并行和分布式的。在執行期間,流具有一個或多個流分區,每個算子都擁有一個或多個子任務。子任務之間彼此相互獨立,在不同的線程、機器、或容器中執行。

子任務的數量就代表了該算子的并行度parallelism),同一程序的不同算子可能會具有不同的并行度。

在這里插入圖片描述

兩個算子之間可以通過一對一重新分發的方式傳遞數據。

  • 一對一:該模式會保留元素的分區和排序。上圖中Source到map()的過程就屬于一對一

  • 重新分發

    • 該模式會更改流的分區,上圖中map()到keyBy()/window()的過程就屬于重新分發

    • keyBy()-通過散列重新分區,broadcast()-廣播,rebalance()-隨即分發

及時流處理

對于大多數流應用程序來說,能夠使用用于處理實時數據的相同代碼重新處理歷史數據,并無論如何都能產生確定性、一致性的結果,這是非常有價值的。

同等重要的是,注意事件發生的順序,而不是交付處理的順序,并能夠推斷一組事件何時(或應該)完成。

通過使用記錄在數據流中的事件時間戳,而不是使用處理數據的機器的時鐘,可以滿足及時流處理的這些要求。

有狀態流處理

Flink的操作是可以有狀態的。這意味著如何處理一件事可能取決于之前所有事件的累積。

Flink 應用程序在分布式集群上并行運行。

有狀態算子的并行實例集實際上是一個分片鍵值存儲。每個并行實例負責處理一組特定鍵的事件,這些鍵的狀態保存在本地。

下圖顯示了作業圖中前三個算子以 2 的并行度運行的作業,最終由并行度為1的接收器結束。第三個算子是有狀態的,第二個和第三個算子之間正在發生隨機的網絡連接。

在這里插入圖片描述

狀態始終在本地訪問,這有助于 Flink 應用程序實現高吞吐量和低延遲。 你可以選擇將狀態保留在 JVM 堆上,如果狀態開銷太大,可以選擇將其存儲于高效率的磁盤中。

通過狀態快照實現容錯

Flink能夠通過狀態快照和流回溯的組合提供容錯。這些快照將捕獲分布式管道以及整個作業圖的狀態,將其記錄在隊列中,當發生故障時,進行回溯,恢復至最近的狀態。快照的捕獲是異步進行的,并不會影響正在處理的任務。

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

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

相關文章

Kaptcha的基本應用

Kaptcha Kaptcha 是一個用于生成和驗證驗證碼的 Java 庫,提供了豐富的生成和驗證功能,并支持自定義配置。它可以用于增加應用程序的安全性,防止機器人和惡意攻擊。 Kaptcha 可以生成各種類型的驗證碼,包括數字、字母、數字字母組…

KDD 2023 獲獎論文公布,港中文、港科大等獲最佳論文獎

ACM SIGKDD(國際數據挖掘與知識發現大會,KDD)是數據挖掘領域歷史最悠久、規模最大的國際頂級學術會議,也是首個引入大數據、數據科學、預測分析、眾包等概念的會議。 今年,第29屆 KDD 大會于上周在美國加州長灘圓滿結…

HTTP--Request詳解

請求消息數據格式 請求行 請求方式 請求url 請求協議/版本 GET /login.html HTTP/1.1 請求頭 客戶端瀏覽器告訴服務器一些信息 請求頭名稱: 請求頭值 常見的請求頭: User-Agent:瀏覽器告訴服務器,我訪問你使用的瀏覽器版本信息 可…

藍橋杯每日N題 (消滅老鼠)

大家好 我是寸鐵 希望這篇題解對你有用,麻煩動動手指點個贊或關注,感謝您的關注 不清楚藍橋杯考什么的點點下方👇 考點秘籍 想背純享模版的伙伴們點點下方👇 藍橋杯省一你一定不能錯過的模板大全(第一期) 藍橋杯省一你一定不…

【日常積累】HTTP和HTTPS的區別

背景 在運維面試中,經常會遇到面試官提問http和https的區別,今天咱們先來簡單了解一下。 超文本傳輸協議HTTP被用于在Web瀏覽器和網站服務器之間傳遞信息,HTTP協議以明文方式發送內容,不提供任何方式的數據加密,如果…

09- DMA(DirectMemoryAccess直接存儲器訪問)

DMA 09 、DMA(DirectMemoryAccess直接存儲器訪問)DMA配置流程 09 、DMA(DirectMemoryAccess直接存儲器訪問) DMA配置流程 dma.c文件 main.c文件 詳見《stm32中文參考手冊》表57。

tsconfig.json和jsconfig.json配置

{// 編譯選項"compilerOptions": {// 生成代碼的語言版本:將我們寫的 TS 代碼編譯成哪個版本的 JS 代碼// 命令行: tsc --target es5 11-測試TS配置文件.ts"target": "es5",// 指定要包含在編譯中的 library"lib&quo…

3年 Android 開發的面試心經(后悔當初沒有拿 N+1)

作者:勇闖天涯 當某人順利通過大廠面試時,總會有人認為這是運氣比較好罷了,但他們不曾得知對方之前受過多少苦和委屈,又付出了多少努力一步步去突破這些困境。正是因為他們的努力付出,在合適的時間與地點,用…

SSH連接工具匯總

xshell 這是個熟悉的軟件啦,目前我正在使用Xshell_7 鏈接:https://www.xshell.com/zh/xshell/ FinalShell 國產軟件,有windows和MAC版本;使用方便而且免費,但是軟件比較占用內存。但是都2021年了,筆記本…

AlphaZero能否從圍棋和國際象棋飛躍到量子計算?

一項新的研究表明,DeepMind驚人的游戲算法AlphaZero可以幫助釋放量子計算的力量和潛力。 自兩年多前出現以來,AlphaZero一再證明了其快速學習能力,將自己提升到圍棋,國際象棋和將棋(日本象棋)的特級大師級別…

VHDL記錄

文章目錄 使用function名稱作為“常量”numeric_std包集中使用乘法的注意項variable的使用對于entity設置屬性的方法在entity聲明中嵌入function的定義VHDL仿真讀寫文件File declaration/File handingFile readingFile writing小例子 使用函數 模塊中打印出調試信息 使用functi…

RTC實驗

一、RTC簡介 RTC(Real Time Clock)即實時時鐘,它是一個可以為系統提供精確的時間基準的元器件,RTC一般采用精度較高的晶振作為時鐘源,有些RTC為了在主電源掉電時還可以工作,需要外加電池供電BCD碼,四位二進制表示一位…

Java Persistence APl(JPA)——JPA是啥? SpringBoot整合JPA JPA的增刪改查 條件模糊查詢 多對一查詢

目錄 引出Jpa是啥?Jpa的使用創建實體類寫dao接口類寫服務類 crud增刪改查增加修改根據id刪除全查詢分頁查詢 條件查詢模糊查詢單條件查詢多條件查詢模糊查詢排序查詢 多對一查詢定義實體類auto主鍵策略下新增進行全查詢測試 全部代碼application.yml配置類pom配置文…

Java反射機制是什么?

Java反射機制是 Java 語言的一個重要特性。 在學習 Java 反射機制前,大家應該先了解兩個概念,編譯期和運行期。 編譯期是指把源碼交給編譯器編譯成計算機可以執行的文件的過程。在 Java 中也就是把 Java 代碼編成 class 文件的過程。編譯期只是做了一些…

Python學習筆記第五十二天(Pandas 安裝)

Python學習筆記第五十二天 Pandas 安裝查看安裝版本 安裝驗證后記 Pandas 安裝 安裝 pandas 需要基礎環境是 Python,開始前我們假定你已經安裝了 Python 和 Pip。 使用 pip 安裝 pandas: pip install pandas安裝成功后,我們就可以導入 pandas 包使用&…

iPhone(iPad)安裝deb文件

最簡單的方法就是把deb相關的文件拖入手機對應的目錄,一般是DynamicLibraries文件夾 參考:探討手機越獄和安裝deb文件的幾種方式研究 1、在 Mac 上安裝 dpkg 命令 打包 deb 教程之在 Mac 上安裝 dpkg 命令_xcode打包root權限deb_qq_34810996的博客-CS…

神經網絡基礎-神經網絡補充概念-26-前向和反向傳播

簡單比較 前向傳播(Forward Propagation): 前向傳播是神經網絡中的正向計算過程,用于從輸入數據開始,逐層計算每個神經元的輸出值,直到得到最終的預測值。在前向傳播過程中,我們按以下步驟進行…

驅動DAY4 字符設備驅動分步注冊和ioctl函數點亮LED燈

頭文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #d…

一百五十八、Kettle——Kettle各版本及其相關安裝包分享(網盤鏈接,不需積分、不需驗證碼) 持續更新、持續分享

一、目的 最近因為kettle9.3的shim問題看了好多博客,都沒有網盤分享。后來有一位博主分享了kettle9.2的shim安裝包,已經很感謝他,但是是博客分享,下載還需要搞驗證碼下載碼之類的。 kettle9.2的shim安裝包下載好后,一…

圖數據庫_Neo4j基于docker服務版安裝_Neo4j Desktop桌面版安裝---Neo4j圖數據庫工作筆記0004

然后我們來看看如何用docker來安裝Neo4j community server 首先去執行docker pull neo4j:3.5.22-community 去拉取鏡像 然后執行命令就可以安裝了 可以用docker ps查看一下 看看暴露了哪些端口 然后再看一下訪問一下這個時候,要用IP地址了注意 然后再來看一下安裝Desktop 去下…