自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大數(shù)據(jù)技術(shù)之Flink:你倆不行,還是我“流”的好

大數(shù)據(jù) 數(shù)據(jù)湖
隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的興起,每分每秒都在產(chǎn)生大量的數(shù)據(jù),例如傳感器產(chǎn)生的數(shù)據(jù)、訂單交易數(shù)據(jù)、用戶行為記錄等。這些無時不刻都在產(chǎn)生的數(shù)據(jù),我們稱之為無界數(shù)據(jù)或流數(shù)據(jù)。通常被用于用戶行為分析進(jìn)行實(shí)時推薦、銷售數(shù)據(jù)實(shí)時分析進(jìn)行營銷策略調(diào)整等場景。

對于 MapReduce 和 Spark 來講,這些數(shù)據(jù)是一大批數(shù)據(jù),也稱之為有界數(shù)據(jù),對這些數(shù)據(jù)的計(jì)算就稱為批計(jì)算。

隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的興起,每分每秒都在產(chǎn)生大量的數(shù)據(jù),例如傳感器產(chǎn)生的數(shù)據(jù)、訂單交易數(shù)據(jù)、用戶行為記錄等。這些無時不刻都在產(chǎn)生的數(shù)據(jù),我們稱之為無界數(shù)據(jù)或流數(shù)據(jù)。通常被用于用戶行為分析進(jìn)行實(shí)時推薦、銷售數(shù)據(jù)實(shí)時分析進(jìn)行營銷策略調(diào)整等場景。

MapReduce 和 Spark 這樣的批計(jì)算系統(tǒng)就滿足不了實(shí)時計(jì)算的需求。所以就誕生了 Storm、Spark Streaming、Flink這些流計(jì)算系統(tǒng)。

批計(jì)算和流計(jì)算整體工作流程大體一致,都有任務(wù)調(diào)度、計(jì)算結(jié)果聚合等過程。只不過因?yàn)閿?shù)據(jù)源的原因,執(zhí)行細(xì)節(jié)上會有所不同。這里有幾個概念需要進(jìn)行區(qū)分,避免混淆:

  • 資源(計(jì)算節(jié)點(diǎn))分配:

批計(jì)算是對一批數(shù)據(jù)進(jìn)行一次計(jì)算,所以在每次調(diào)度計(jì)算任務(wù)時分配資源,計(jì)算完成后,對應(yīng)的資源就會被釋放,下次在執(zhí)行時重新分配資源。

流計(jì)算是對實(shí)時流進(jìn)系統(tǒng)的數(shù)據(jù)進(jìn)行不間斷的計(jì)算,所以計(jì)算資源會一次分配完成,后續(xù)的計(jì)算任務(wù)會一直運(yùn)行,直到程序異常任務(wù)停止才會釋放資源。

  • 任務(wù)調(diào)度:
  • 批計(jì)算是因?yàn)闅v史數(shù)據(jù)量過大,數(shù)據(jù)源是分布在各個節(jié)點(diǎn)的數(shù)據(jù)塊,所以會根據(jù)數(shù)據(jù)所在地進(jìn)行任務(wù)調(diào)度(數(shù)據(jù)、計(jì)算本地化)。

  • 流計(jì)算數(shù)據(jù)源通常是Socket、Kafka中的一條條數(shù)據(jù),所有的計(jì)算任務(wù)在這之前已經(jīng)根據(jù)并行度調(diào)度到各個節(jié)點(diǎn),數(shù)據(jù)來臨時根據(jù)某個策略分配給某個計(jì)算任務(wù)。

由于 Spark Streaming 是建立在 Spark 基礎(chǔ)上,所以任務(wù)執(zhí)行還是 Spark 的邏輯,所以 Spark Streaming 算是一個“偽”流計(jì)算系統(tǒng),屬于批計(jì)算這一波。

簡單來說 Spark Streaming 通過很小的時間間隔(例如1秒)將實(shí)時數(shù)據(jù)收集為“微批”數(shù)據(jù),然后然后交給 Spark 處理。

圖片圖片

Spark Streaming 微批數(shù)據(jù)

因?yàn)槭情g隔一段時間再去計(jì)算,所以在實(shí)時性方面,Spark Streaming 就不如 Flink,現(xiàn)在說起流計(jì)算基本上就是在討論 Flink 了。不過兩者的架構(gòu)和概念有很多相似的地方,也都是函數(shù)式編程。如果掌握了 Spark ,學(xué)習(xí) Flink 也就非常簡單輕松了。

至于 Storm ,作為早期的實(shí)時計(jì)算引擎并不支持有狀態(tài)計(jì)算和exactly-once的語義,以及編碼相對復(fù)雜,所以現(xiàn)在也慢慢被大家遺忘。

如果有“Spark Streaming 收集的數(shù)據(jù)是怎么分區(qū)的?”、“什么是有狀態(tài)計(jì)算和exactly-once語義?”、“Flink 是如何做到數(shù)據(jù)、計(jì)算本地化?”

責(zé)任編輯:武曉燕 來源: Hi程序員
相關(guān)推薦

2019-04-24 13:07:16

HadoopSpark分布式架構(gòu)

2017-08-02 08:56:43

大數(shù)據(jù)技術(shù)SaaS

2019-11-12 14:34:07

大數(shù)據(jù)MATLAB算法

2012-06-26 10:08:56

云計(jì)算大數(shù)據(jù)

2018-12-29 13:53:19

微信今日頭條

2016-11-22 09:40:08

2020-04-14 15:18:16

SparkFlink框架

2012-08-27 09:42:42

云計(jì)算云時代大數(shù)據(jù)

2023-03-17 07:39:54

開源數(shù)據(jù)流技術(shù)

2012-05-18 13:28:04

HTC

2017-04-06 09:35:10

大數(shù)據(jù)SparkSQLSpark

2017-04-28 08:13:08

大數(shù)據(jù)框架HDFS

2021-11-01 07:21:37

Flink大數(shù)據(jù)SQL

2015-08-12 15:10:22

2012-05-14 10:54:35

數(shù)據(jù)信息

2019-12-19 14:38:08

Flink SQL數(shù)據(jù)流Join

2015-08-28 10:05:47

數(shù)據(jù)挖掘

2014-11-11 10:47:19

hadoop數(shù)據(jù)流

2022-08-28 16:01:39

團(tuán)隊(duì)技術(shù)

2016-12-08 14:41:59

流處理器PaaStormKafka
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號