0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

來(lái)看看Spark和Flink各自的優(yōu)劣和主要區(qū)別

電子工程師 ? 來(lái)源:lp ? 2019-03-15 09:30 ? 次閱讀

2018和2019年是大數(shù)據(jù)領(lǐng)域蓬勃發(fā)展的兩年,自2019年伊始,實(shí)時(shí)流計(jì)算技術(shù)開(kāi)始步入普通開(kāi)發(fā)者視線,各大公司都在不遺余力地試用新的流計(jì)算框架,實(shí)時(shí)流計(jì)算引擎Spark Streaming、Kafka Streaming、Beam和Flink持續(xù)火爆。

最近Spark社區(qū),來(lái)自Databricks、NVIDIA、Google以及阿里巴巴的工程師們正在為Apache Spark 3.0添加原生的GPU調(diào)度支持,參考(SPARK-24615和SPARK-24579)該方案將填補(bǔ)了Spark在GPU資源的任務(wù)調(diào)度方面的空白,極大擴(kuò)展了Spark在深度學(xué)習(xí)信號(hào)處理的應(yīng)用場(chǎng)景。

與此同時(shí),2019年1月底,阿里巴巴內(nèi)部版本Blink正式開(kāi)源!一石激起千層浪,Blink開(kāi)源的消息立刻刷爆朋友圈,整個(gè)大數(shù)據(jù)計(jì)算領(lǐng)域一直以來(lái)由Spark獨(dú)領(lǐng)風(fēng)騷,瞬間成為兩強(qiáng)爭(zhēng)霸的時(shí)代。那么未來(lái)Spark和Blink的發(fā)展會(huì)碰撞出什么樣的火花?誰(shuí)會(huì)成為大數(shù)據(jù)實(shí)時(shí)計(jì)算領(lǐng)域最亮的那顆星?

我們接下來(lái)看看Spark和Flink各自的優(yōu)劣和主要區(qū)別。

底層機(jī)制

Spark的數(shù)據(jù)模型是彈性分布式數(shù)據(jù)集 RDD(Resilient Distributed Dattsets),這個(gè)內(nèi)存數(shù)據(jù)結(jié)構(gòu)使得spark可以通過(guò)固定內(nèi)存做大批量計(jì)算。初期的Spark Streaming是通過(guò)將數(shù)據(jù)流轉(zhuǎn)成批(micro-batches),即收集一段時(shí)間(time-window)內(nèi)到達(dá)的所有數(shù)據(jù),并在其上進(jìn)行常規(guī)批處,所以嚴(yán)格意義上,還不能算作流式處理。但是Spark從2.x版本開(kāi)始推出基于 Continuous Processing Mode的 Structured Streaming,支持按事件時(shí)間處理和端到端的一致性,但是在功能上還有一些缺陷,比如對(duì)端到端的exactly-once語(yǔ)義的支持。

一個(gè)典型的Spark DAG示意圖

Flink是統(tǒng)一的流和批處理框架,基本數(shù)據(jù)模型是數(shù)據(jù)流,以及事件(Event)的序列,F(xiàn)link從設(shè)計(jì)之初秉持了一個(gè)觀點(diǎn):批是流的特例。每一條數(shù)據(jù)都可以出發(fā)計(jì)算邏輯,那么Flink的流特性已經(jīng)在延遲方面占得天然優(yōu)勢(shì)。

一個(gè)典型的Flink workflow示意圖

Flink還提供了一個(gè)獨(dú)特的概念叫做有狀態(tài)的計(jì)算,它被用來(lái)處理一種情況:數(shù)據(jù)的處理和之前處理過(guò)的數(shù)據(jù)或者事件有關(guān)聯(lián)。比如,在做聚合操作的時(shí)候,一個(gè)批次的數(shù)據(jù)聚合的結(jié)果依賴于之前處理過(guò)的批次。早期的Spark用戶會(huì)經(jīng)常受此類問(wèn)題所困擾,直到Structured Streaming的出現(xiàn)才得已解決。

Flink從一開(kāi)始就引入了state的概念來(lái)處理這種問(wèn)題。為狀態(tài)計(jì)算提供了一個(gè)通用的解決方案。

周邊生態(tài)

在大數(shù)據(jù)領(lǐng)域,任何一個(gè)項(xiàng)目的火爆都被離不開(kāi)完善的技術(shù)棧,Spark和Flink都基于對(duì)底層數(shù)據(jù)和計(jì)算調(diào)度的高度抽象的內(nèi)核上開(kāi)發(fā)出了批處理,流處理,結(jié)構(gòu)化數(shù)據(jù),圖數(shù)據(jù),機(jī)器學(xué)習(xí)等不同套件,完成對(duì)絕大多數(shù)數(shù)據(jù)分析領(lǐng)域的場(chǎng)景的支持,意圖統(tǒng)一數(shù)據(jù)分析領(lǐng)域。

Flink和Spark都是由Scla和Java混合編程實(shí)現(xiàn),Spark的核心邏輯由Scala完成,而Flink的主要核心邏輯由Java完成。在對(duì)第三方語(yǔ)言的支持上,Spark支持的更為廣泛,Spark幾乎完美的支持Scala,Java,Python,R語(yǔ)言編程。

Spark周邊生態(tài)(圖來(lái)源于官網(wǎng))

與此同時(shí),F(xiàn)link&Spark官方都支持與存儲(chǔ)系統(tǒng)如HDFS,S3的集成,資源管理/調(diào)度Yarn,Mesos,K8s等集成,數(shù)據(jù)庫(kù)Hbase,Cassandra,消息系統(tǒng)Amazon,Kinesis,Kafka等。

Flink周邊生態(tài)(圖來(lái)源于官網(wǎng))

在最近的Spark+AI峰會(huì)上,Databricks公司推出了自己的統(tǒng)一分析平臺(tái)(Unified Analytics Platform),目標(biāo)是使戶在一個(gè)系統(tǒng)里解決盡可能多的數(shù)據(jù)需求。Flink的目標(biāo)和Spark一致,包含AI的統(tǒng)一平臺(tái)也是Flink的發(fā)展方向,從技術(shù)上來(lái)看,F(xiàn)link是完全有能力支持對(duì)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的集成,但目前來(lái)看,F(xiàn)link仍有很長(zhǎng)的路要走。

未來(lái)趨勢(shì)

2018年是機(jī)器學(xué)習(xí)和深度學(xué)習(xí)元年,ML在數(shù)據(jù)處理領(lǐng)域占比越來(lái)越重。Spark和Flink在做好實(shí)時(shí)計(jì)算的同時(shí),誰(shuí)能把握住這次機(jī)會(huì)就可以在未來(lái)的發(fā)展中占得先機(jī)。另外隨著5G的發(fā)展,網(wǎng)絡(luò)傳輸不再是瓶頸之時(shí),IOT的爆發(fā)式發(fā)展也將會(huì)是實(shí)時(shí)計(jì)算需求爆發(fā)之時(shí),屆時(shí)Flink在流式計(jì)算中的天然優(yōu)勢(shì)將發(fā)揮的淋漓盡致,Blink的開(kāi)源和阿里巴巴對(duì)Blink的加持無(wú)疑又給Flink未來(lái)的發(fā)展注入一針強(qiáng)心劑。

總結(jié)

Spark和Flink發(fā)展至今,基本上已經(jīng)是實(shí)時(shí)計(jì)算領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。兩者在易用性和生態(tài)系統(tǒng)建設(shè)上都投入了大量的資源,是現(xiàn)在和未來(lái)一段時(shí)間內(nèi)大數(shù)據(jù)領(lǐng)域最有有力的競(jìng)爭(zhēng)者。二者的發(fā)展是競(jìng)爭(zhēng)中伴隨著互相促進(jìn),在與機(jī)器學(xué)習(xí)集成和統(tǒng)一處理平臺(tái)的建設(shè)上雙方各有優(yōu)劣,誰(shuí)能盡早補(bǔ)齊短板就會(huì)在未來(lái)的發(fā)展中占得優(yōu)勢(shì)。對(duì)于普通大數(shù)據(jù)領(lǐng)域的開(kāi)發(fā)者而言,當(dāng)下也是最好的時(shí)代,可以見(jiàn)證兩大數(shù)據(jù)引擎的蓬勃發(fā)展,除了學(xué)習(xí)別無(wú)選擇,這何嘗不是是一種幸運(yùn)?

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4590

    瀏覽量

    128133
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1197

    瀏覽量

    24532
  • SPARK
    +關(guān)注

    關(guān)注

    1

    文章

    105

    瀏覽量

    19823

原文標(biāo)題:開(kāi)源的Blink和Spark3.0,誰(shuí)將稱霸大數(shù)據(jù)領(lǐng)域?

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)AD9162和AD9164的主要區(qū)別是什么?

    AD9162和AD9164的主要區(qū)別是什么,我看手冊(cè)里兩個(gè)DAC的描述和封裝管腳是一樣的,但兩者的價(jià)格差別很大,請(qǐng)問(wèn)兩者的主要區(qū)別是什么,有沒(méi)有二者的對(duì)比參數(shù)類的描述
    發(fā)表于 08-06 06:58

    hadoop和spark區(qū)別

    一下看看(發(fā)行版DKhadoop,去大快的網(wǎng)站上應(yīng)該可以下載到的。) 在學(xué)習(xí)hadoop的時(shí)候查詢一些資料的時(shí)候經(jīng)常會(huì)看到有比較hadoop和spark的,對(duì)于初學(xué)者來(lái)說(shuō)難免會(huì)有點(diǎn)搞不清楚這二者到底有
    發(fā)表于 11-30 15:51

    USART和UART的主要區(qū)別

    和UART的主要區(qū)別在于,USART支持同步通信,該模式有一根時(shí)鐘線提供時(shí)鐘。串口在嵌入式中經(jīng)常使用,一般使用UAR
    發(fā)表于 08-16 09:08

    HDL語(yǔ)言中的unsigned與signed的主要區(qū)別是什么

    unsigned是什么意思?signed是什么意思?HDL語(yǔ)言中的unsigned與signed的主要區(qū)別是什么?
    發(fā)表于 09-24 07:02

    PLC的信號(hào)板和信號(hào)模塊的主要區(qū)別是什么?

    PLC的信號(hào)板和信號(hào)模塊的主要區(qū)別是什么?
    發(fā)表于 04-17 10:57

    樹(shù)莓派和51單片機(jī)的主要區(qū)別是什么?

    樹(shù)莓派和51單片機(jī)的主要區(qū)別是什么
    發(fā)表于 11-01 07:51

    STM8L和STM8S的主要區(qū)別是什么?

    兩者的主要區(qū)別是啥
    發(fā)表于 11-02 07:46

    AD9162和AD9164的主要區(qū)別是什么?

    AD9162和AD9164的主要區(qū)別是什么,我看手冊(cè)里兩個(gè)DAC的描述和封裝管腳是一樣的,但兩者的價(jià)格差別很大,請(qǐng)問(wèn)兩者的主要區(qū)別是什么,有沒(méi)有二者的對(duì)比參數(shù)類的描述
    發(fā)表于 12-11 06:44

    AMOLED與OLED的主要區(qū)別

    電子專業(yè)單片機(jī)相關(guān)知識(shí)學(xué)習(xí)教材資料——vAMOLED與OLED的主要區(qū)別
    發(fā)表于 10-25 18:27 ?0次下載

    unpacked數(shù)組和packed數(shù)組的主要區(qū)別

    unpacked數(shù)組和packed數(shù)組的主要區(qū)別是unpacked數(shù)組在物理存儲(chǔ)時(shí)不能保證連續(xù),而packed數(shù)組則能保證在物理上連續(xù)存儲(chǔ)。
    的頭像 發(fā)表于 10-18 09:13 ?2487次閱讀

    NTC與PTC的主要區(qū)別和應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《NTC與PTC的主要區(qū)別和應(yīng)用.zip》資料免費(fèi)下載
    發(fā)表于 02-06 14:03 ?2次下載
    NTC與PTC的<b class='flag-5'>主要區(qū)別</b>和應(yīng)用

    步進(jìn)電機(jī)和伺服電機(jī)的主要區(qū)別

    在許多領(lǐng)域都需要各種電機(jī),包括知名的步進(jìn)電機(jī)和伺服電機(jī)。但是,對(duì)于許多用戶而言,他們不了解這兩種電機(jī)的主要區(qū)別,因此他們始終不知道如何選擇。那么,步進(jìn)電機(jī)和伺服電機(jī)之間的主要區(qū)別是什么?
    發(fā)表于 08-21 10:14 ?2486次閱讀
    步進(jìn)電機(jī)和伺服電機(jī)的<b class='flag-5'>主要區(qū)別</b>

    DCS系統(tǒng)與PLC系統(tǒng)的主要區(qū)別

    在工業(yè)自動(dòng)化領(lǐng)域,DCS(分布式控制系統(tǒng))和PLC(可編程邏輯控制器)是兩個(gè)至關(guān)重要的控制系統(tǒng)。它們各自具有獨(dú)特的特點(diǎn)和優(yōu)勢(shì),適用于不同的工業(yè)環(huán)境和控制需求。本文將對(duì)DCS系統(tǒng)和PLC系統(tǒng)的主要區(qū)別進(jìn)行詳細(xì)的分析和討論,旨在幫助讀者更好地理解和選擇適合自己應(yīng)用需求的控制系
    的頭像 發(fā)表于 06-06 18:06 ?1035次閱讀

    無(wú)刷電機(jī)和有刷電機(jī)的主要區(qū)別

      在電機(jī)領(lǐng)域,無(wú)刷電機(jī)和有刷電機(jī)是兩種常見(jiàn)的電機(jī)類型。它們各自具有獨(dú)特的工作原理、優(yōu)缺點(diǎn)以及應(yīng)用場(chǎng)景。本文將詳細(xì)解釋無(wú)刷電機(jī)和有刷電機(jī)之間的主要區(qū)別,包括它們的工作原理、優(yōu)缺點(diǎn)、應(yīng)用場(chǎng)景等方面的內(nèi)容,以幫助讀者更好地理解和選擇這兩種電機(jī)。
    的頭像 發(fā)表于 06-07 10:52 ?1278次閱讀

    dwdm與wdm的主要區(qū)別

    光纖通信中廣泛使用的多路復(fù)用技術(shù)。它們的主要區(qū)別在于波長(zhǎng)間隔、系統(tǒng)容量、成本和應(yīng)用領(lǐng)域等方面。 波長(zhǎng)間隔 DWDM和WDM的主要區(qū)別在于它們使用的波長(zhǎng)間隔。WDM技術(shù)使用較大的波長(zhǎng)間隔,通常在20nm到
    的頭像 發(fā)表于 07-18 10:34 ?312次閱讀