国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

流式計算領域新霸主 Flink 的那些事兒

大數據
Flink主要包括DataStream API、DataSet API、Table API、SQL、Graph API和FlinkML等。現在Flink也有自己的生態圈,涉及離線數據處理、實時數據處理、SQL操作、圖計算和機器學習庫等。

Flink項目是大數據計算領域冉冉升起的一顆新星。大數據計算引擎的發展經歷了幾個過程,從第1代的MapReduce,到第2代基于有向無環圖的Tez,第3代基于內存計算的Spark,再到第4代的Flink。因為Flink可以基于Hadoop進行開發和使用,所以Flink并不會取代Hadoop,而是和Hadoop緊密結合。

Flink主要包括DataStream API、DataSet API、Table API、SQL、Graph API和FlinkML等。現在Flink也有自己的生態圈,涉及離線數據處理、實時數據處理、SQL操作、圖計算和機器學習庫等。

Flink原理分析

很多人是在2015年才聽到Flink這個詞的,其實早在2008年,Flink的前身就已經是柏林理工大學的一個研究性項目,在2014年這個項目被Apache孵化器所接受后,Flink迅速成為ASF(Apache Software Foundation)的頂級項目之一。截至目前,Flink的版本經過了多次更新,本書基于1.6版本寫作。

Flink是一個開源的流處理框架,它具有以下特點:

  • 分布式:Flink程序可以運行在多臺機器上。
  • 高性能:處理性能比較高。
  • 高可用:由于Flink程序本身是穩定的,因此它支持高可用性(High Availability,HA)。
  • 準確:Flink可以保證數據處理的準確性。

Flink主要由Java代碼實現,它同時支持實時流處理和批處理。對于Flink而言,作為一個流處理框架,批數據只是流數據的一個極限特例而已。此外,Flink還支持迭代計算、內存管理和程序優化,這是它的原生特性。

由圖1.1可知,Flink的功能特性如下:

  • 流式優先:Flink可以連續處理流式數據。
  • 容錯:Flink提供有狀態的計算,可以記錄數據的處理狀態,當數據處理失敗的時候,能夠無縫地從失敗中恢復,并保持Exactly-once。
  • 可伸縮:Flink中的一個集群支持上千個節點。
  • 性能:Flink支持高吞吐、低延遲。

圖1.1 Flink的功能特性

在這里解釋一下,高吞吐表示單位時間內可以處理的數據量很大,低延遲表示數據產生以后可以在很短的時間內對其進行處理,也就是Flink可以支持快速地處理海量數據。

Flink架構分析

Flink架構可以分為4層,包括Deploy層、Core層、API層和Library層,如圖1.2所示。

  • Deploy層:該層主要涉及Flink的部署模式,Flink支持多種部署模式——本地、集群(Standalone/YARN)和云服務器(GCE/EC2)。
  • Core層:該層提供了支持Flink計算的全部核心實現,為API層提供基礎服務。
  • API層:該層主要實現了面向無界Stream的流處理和面向Batch的批處理API,其中流處理對應DataStream API,批處理對應DataSet API。
  • Library層:該層也被稱為Flink應用框架層,根據API層的劃分,在API層之上構建的滿足特定應用的實現計算框架,也分別對應于面向流處理和面向批處理兩類。面向流處理支持CEP(復雜事件處理)、基于SQL-like的操作(基于Table的關系操作);面向批處理支持FlinkML(機器學習庫)、Gelly(圖處理)、Table 操作。

從圖1.2可知, Flink對底層的一些操作進行了封裝,為用戶提供了DataStream API和DataSet API。使用這些API可以很方便地完成一些流數據處理任務和批數據處理 任務。

圖1.2 Flink架構

Flink基本組件

讀者應該對Hadoop和Storm程序有所了解,在Hadoop中實現一個MapReduce需要兩個階段——Map和Reduce,而在Storm中實現一個Topology則需要Spout和Bolt組件。因此,如果我們想實現一個Flink任務的話,也需要有類似的邏輯。

Flink中提供了3個組件,包括DataSource、Transformation和DataSink。

  • DataSource:表示數據源組件,主要用來接收數據,目前官網提供了readTextFile、socketTextStream、fromCollection以及一些第三方的Source。
  • Transformation:表示算子,主要用來對數據進行處理,比如Map、FlatMap、Filter、Reduce、Aggregation等。
  • DataSink:表示輸出組件,主要用來把計算的結果輸出到其他存儲介質中,比如writeAsText以及Kafka、Redis、Elasticsearch等第三方Sink組件。

因此,想要組裝一個Flink Job,至少需要這3個組件。

Flink Job=DataSource+Transformation+DataSink

Flink流處理(Streaming)與批處理(Batch)

在大數據處理領域,批處理與流處理一般被認為是兩種截然不同的任務,一個大數據框架一般會被設計為只能處理其中一種任務。比如,Storm只支持流處理任務,而MapReduce、Spark只支持批處理任務。Spark Streaming是Apache Spark之上支持流處理任務的子系統,這看似是一個特例,其實不然——Spark Streaming采用了一種Micro-Batch架構,即把輸入的數據流切分成細粒度的Batch,并為每一個Batch數據提交一個批處理的Spark任務,所以Spark Streaming本質上還是基于Spark批處理系統對流式數據進行處理,和Storm等完全流式的數據處理方式完全不同。

通過靈活的執行引擎,Flink能夠同時支持批處理任務與流處理任務。在執行引擎層級,流處理系統與批處理系統最大的不同在于節點間的數據傳輸方式。

如圖1.3所示,對于一個流處理系統,其節點間數據傳輸的標準模型是,在處理完成一條數據后,將其序列化到緩存中,并立刻通過網絡傳輸到下一個節點,由下一個節點繼續處理。而對于一個批處理系統,其節點間數據傳輸的標準模型是,在處理完成一條數據后,將其序列化到緩存中,當緩存寫滿時,就持久化到本地硬盤上;在所有數據都被處理完成后,才開始將其通過網絡傳輸到下一個節點。

圖1.3 Flink的3種數據傳輸模型

這兩種數據傳輸模式是兩個極端,對應的是流處理系統對低延遲和批處理系統對高吞吐的要求。Flink的執行引擎采用了一種十分靈活的方式,同時支持了這兩種數據傳輸模型。

Flink以固定的緩存塊為單位進行網絡數據傳輸,用戶可以通過設置緩存塊超時值指定緩存塊的傳輸時機。如果緩存塊的超時值為0,則Flink的數據傳輸方式類似于前面所提到的流處理系統的標準模型,此時系統可以獲得最低的處理延遲;如果緩存塊的超時值為無限大,則Flink的數據傳輸方式類似于前面所提到的批處理系統的標準模型,此時系統可以獲得最高的吞吐量。

緩存塊的超時值也可以設置為0到無限大之間的任意值,緩存塊的超時閾值越小,Flink流處理執行引擎的數據處理延遲就越低,但吞吐量也會降低,反之亦然。通過調整緩存塊的超時閾值,用戶可根據需求靈活地權衡系統延遲和吞吐量。

Flink典型應用場景分析

Flink主要應用于流式數據分析場景,目前涉及如下領域:

  • 實時ETL:集成流計算現有的諸多數據通道和SQL靈活的加工能力,對流式數據進行實時清洗、歸并和結構化處理;同時,對離線數倉進行有效的補充和優化,并為數據實時傳輸提供可計算通道。
  • 實時報表:實時化采集、加工流式數據存儲;實時監控和展現業務、客戶各類指標,讓數據化運營實時化。
  • 監控預警:對系統和用戶行為進行實時檢測和分析,以便及時發現危險行為。
  • 在線系統:實時計算各類數據指標,并利用實時結果及時調整在線系統的相關策略,在各類內容投放、無線智能推送領域有大量的應用。

Flink在如下類型的公司中有具體的應用:

  • 優化電商網站的實時搜索結果:阿里巴巴的基礎設施團隊使用Flink實時更新產品細節和庫存信息(Blink)。
  • 針對數據分析團隊提供實時流處理服務:通過Flink數據分析平臺提供實時數據分析服務,及時發現問題。
  • 網絡/傳感器檢測和錯誤檢測:Bouygues電信公司是法國著名的電信供應商,使用Flink監控其有線和無線網絡,實現快速故障響應。
  • 商業智能分析ETL:Zalando使用Flink轉換數據以便于將其加載到數據倉庫,簡化復雜的轉換操作,并確保分析終端用戶可以更快地訪問數據(實時ETL)。

流式計算框架對比

Storm是比較早的流式計算框架,后來又出現了Spark Streaming和Trident,現在又出現了Flink這種優秀的實時計算框架,那么這幾種計算框架到底有什么區別呢?下面我們來詳細分析一下,如表1.1所示。

表1 流式計算框架對比

產品

模型

API

保證次數

容錯機制

狀態管理

延時

吞吐量

Storm

Native(數據進入立即處理)

組合式(基礎API)

At-least-once (至少一次)

Record ACK(ACK機制)

Trident

Micro-Batching(劃分為小批 處理)

組合式

Exactly-once (僅一次)

Record ACK

基于操作(每次操作有一個狀態)

中等

中等

Spark Streaming

Micro-Batching

聲明式(提供封裝后的高階函數,如count函數)

Exactly-once

RDD CheckPoint(基于RDD做CheckPoint)

基于DStream

中等

Flink

Native

聲明式

Exactly-once

CheckPoint(Flink的一種快照)

基于操作

在這里對這幾種框架進行對比:

  • 模型:Storm和Flink是真正的一條一條處理數據;而Trident(Storm的封裝框架)和Spark Streaming其實都是小批處理,一次處理一批數據(小批量)。
  • API:Storm和Trident都使用基礎API進行開發,比如實現一個簡單的sum求和操作;而Spark Streaming和Flink中都提供封裝后的高階函數,可以直接拿來使用,這樣就比較方便了。
  • 保證次數:在數據處理方面,Storm可以實現至少處理一次,但不能保證僅處理一次,這樣就會導致數據重復處理問題,所以針對計數類的需求,可能會產生一些誤差;Trident通過事務可以保證對數據實現僅一次的處理,Spark Streaming和Flink也是如此。
  • 容錯機制:Storm和Trident可以通過ACK機制實現數據的容錯機制,而Spark Streaming和Flink可以通過CheckPoint機制實現容錯機制。
  • 狀態管理:Storm中沒有實現狀態管理,Spark Streaming實現了基于DStream的狀態管理,而Trident和Flink實現了基于操作的狀態管理。
  • 延時:表示數據處理的延時情況,因此Storm和Flink接收到一條數據就處理一條數據,其數據處理的延時性是很低的;而Trident和Spark Streaming都是小型批處理,它們數據處理的延時性相對會偏高。
  • 吞吐量:Storm的吞吐量其實也不低,只是相對于其他幾個框架而言較低;Trident屬于中等;而Spark Streaming和Flink的吞吐量是比較高的。

官網中Flink和Storm的吞吐量對比如圖1.4所示。

圖1.4 Flink和Storm的吞吐量對比

工作中如何選擇實時計算框架

前面我們分析了3種實時計算框架,那么公司在實際操作時到底選擇哪種技術框架呢?下面我們來分析一下:

  • 需要關注流數據是否需要進行狀態管理,如果是,那么只能在Trident、Spark Streaming和Flink中選擇一個。
  • 需要考慮項目對At-least-once(至少一次)或者Exactly-once(僅一次)消息投遞模式是否有特殊要求,如果必須要保證僅一次,也不能選擇Storm。
  • 對于小型獨立的項目,并且需要低延遲的場景,建議使用Storm,這樣比較簡單。
  • 如果你的項目已經使用了Spark,并且秒級別的實時處理可以滿足需求的話,建議使用Spark Streaming
  • 要求消息投遞語義為Exactly-once;數據量較大,要求高吞吐低延遲;需要進行狀態管理或窗口統計,這時建議使用Flink。
責任編輯:趙寧寧 來源: 寫代碼的SharkChili
相關推薦

2024-11-06 12:31:41

2018-10-18 14:50:52

2017-12-29 09:25:03

2013-09-11 14:28:59

操作系統

2021-03-18 09:01:53

軟件開發軟件選型

2023-04-11 07:34:40

分布式系統算法

2019-02-21 10:08:04

邊緣計算云計算系統

2018-04-12 16:47:54

新零售

2013-03-27 10:50:40

云計算領域

2018-09-26 06:50:19

2022-02-08 17:39:04

MySQL服務器存儲

2011-02-25 14:35:00

2021-06-02 08:33:31

TPCTPC-H系統

2021-06-09 13:28:40

密碼安全身份認證數據安全

2013-12-26 14:23:03

定位系統GPS監測

2018-02-02 13:58:59

數據存儲

2012-07-19 15:30:00

Linux

2017-08-09 08:25:35

DBA數據庫OLAP

2010-04-07 13:13:19

Visual Stud

2022-11-04 07:57:59

編程編碼編譯器
點贊
收藏

51CTO技術棧公眾號

精品国产一区av| 成人中文字幕+乱码+中文字幕| 337p日本| 国产成人高清在线| 成人18视频| 精品72久久久久中文字幕| 久久精品青青大伊人av| 欧美三级网站| 日韩精品在线免费| 久久久久久久久久国产| 亚洲成人中文在线| 日韩欧美国产综合在线一区二区三区| 97超碰人人澡| 日韩激情一二三区| 欧美自拍资源在线| 天堂一区二区在线免费观看| 韩国成人av| 亚洲精品裸体| 日韩精品不卡| 欧美孕妇孕交| 国产.com| 亚洲精品777| 日韩激情片免费| 91老司机福利在线| 亚洲精品wwwww| 精品久久毛片| 久久久视频精品| 久草成人资源| 伊人精品在线观看| 日韩av一区二区在线观看| 欧美一级精品在线| 免费在线观看日韩视频| 久久精品国产在热久久| 伊人久久在线观看| 91丨九色丨国产丨porny| 久久国产这里只有精品| 亚洲一区二区在线视频| 青青久在线视频免费观看| 欧美日韩综合色| 99re99| www.成人网| 精品国产一区二区三区| 亚洲第一天堂av| 国产精品久久久久久久久久久久久| 九九九久久久久久| 欧美性孕妇孕交| 欧美久久久久久久久| 三级在线观看视频| 久久免费精品视频| 91精品在线观看国产| 亚洲自拍偷拍二区| 曰韩精品一区二区| 国产精品视频网址| 日本亚洲欧美三级| 日本在线三级| 成人免费视频在线观看| 天堂色在线视频| 欧美精品丝袜久久久中文字幕| 肉色欧美久久久久久久免费看| 日韩女优在线播放| 日本中文字幕不卡| 成人免费xx| 欧美不卡在线视频| 青青草国产免费一区二区下载| 天天爽夜夜爽夜夜爽精品视频| 欧美伊人久久久久久午夜久久久久| 国产精品白丝jk白祙| 欧美激情国产在线| 亚洲日本一区二区三区在线不卡| 国产精品女上位| 欧美xxx黑人xxx水蜜桃| 91国在线精品国内播放| 美女一区二区视频| 中文字字幕在线中文乱码电影| 欧美人与性动xxxx| 91精品国产色综合久久不卡98| 五月天国产一区| 美女精品久久| 亚洲专区在线视频| 久久精品亚洲国产奇米99| 免费观看久久久久| 欧洲成人性视频| 不卡一区二区在线| 日本精品一区二区三区在线播放| 午夜精品在线观看| 天堂在线看视频| 波多野结衣在线播放| 亚洲国产成人午夜在线一区| 天天爽夜夜爽一区二区三区| 欧美日韩中文在线| 99热这里只有精品首页| av动漫免费观看| 日韩午夜中文字幕| 国产精品久久久久无码av| 热99在线观看| 欧美精品一区三区| 91麻豆免费观看| 国产免费福利网站| 亚洲精品毛片| 久久综合激情| 欧美日韩三区四区| 国产精品成人午夜| 国产成人久久精品麻豆二区| 亚洲免费精品视频| 精品国产伦一区二区三区观看方式 | а√在线中文网新版地址在线| 国产在线观看精品一区二区三区| 中文一区二区完整视频在线观看| 亚洲伊人精品酒店| 各处沟厕大尺度偷拍女厕嘘嘘| 国产一区二区免费| 欧美精品18| 国产福利视频在线播放| 亚洲成人久久电影| 影音先锋亚洲精品| 国产男女猛烈无遮挡91| 亚洲免费专区| 欧美激情va永久在线播放| 欧美日韩性在线观看| 2021国产精品视频| 中文有码一区| 国产精品第七影院| 亚洲欧美综合| 91九色单男在线观看| 国产精品99一区二区三| www.午夜精品| 亚洲69av| 国产一区精品视频| 国产一区二区三区日韩| 国产在线视频在线| 久久久不卡网国产精品二区| 午夜刺激在线| 欧美中文字幕一区二区三区亚洲| a级影片在线观看| 精品国产免费久久| 一区二区三区四区精品视频| 97免费资源站| 激情综合色播激情啊| 久久网站免费视频| 亚洲精品高清在线观看| 久久精品影视大全| 色综合久久精品| 345成人影院| 日韩av成人在线| 天堂一区二区在线免费观看| 欧美激情精品久久久久久小说| 在线精品视频小说1| 国产精品国产三级在线观看| 91久久精品国产91久久性色| 国产激情一区二区三区四区| 男女午夜视频在线观看| 日韩精品一区二区三区在线观看| 欧美成人ⅴideosxxxxx| 57pao成人国产永久免费| 青青草国产精品亚洲专区无| 亚欧精品一区| 不卡在线观看av| 毛片网站大全| 国产精品女视频| 在线亚洲欧美专区二区| 欧美激情第二页| 丝袜在线观看| 韩国精品视频| blacked蜜桃精品一区| 国产精品久久综合| 欧美激情在线狂野欧美精品| 久激情内射婷内射蜜桃| 欧美va在线观看| 国产精品综合一区二区| 亚洲第一免费网站| 曰韩不卡视频| 天堂电影一区| 狠狠色丁香久久婷婷综| 日韩精品在线视频观看| 国产又爽又黄ai换脸| 美女视频在线免费| 精品夜夜嗨av一区二区三区| 亚洲视频网站在线观看| 欧美美女黄色网| 欧美日韩免费观看视频| 高清视频一区二区| 在线电影av不卡网址| 欧美视频在线观看网站| 日本国产亚洲| 久久久青草青青国产亚洲免观| 88国产精品欧美一区二区三区| av日韩在线免费| 全球成人免费直播| 色综合久久六月婷婷中文字幕| 高清一区二区三区视频| 无遮挡的视频在线观看 | 精品久久久久久中文字幕动漫| 九一国产在线| 在线午夜精品| 精品毛片乱码1区2区3区| 在线精品亚洲一区二区| 久久久免费人体| 亚洲国产精品二十页| 欧美亚洲另类制服自拍| 97影院在线观看|