精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文讀懂大數(shù)據的流批處理框架

大數(shù)據
大數(shù)據是收集、整理、處理大容量數(shù)據集,并從中獲得見解所需的非傳統(tǒng)戰(zhàn)略和技術的總稱。雖然處理數(shù)據所需的計算能力或存儲容量早已超過一臺計算機的上限,但這種計算類型的普遍性、規(guī)模,以及價值在最近幾年才經歷了大規(guī)模擴展。

大數(shù)據是收集、整理、處理大容量數(shù)據集,并從中獲得見解所需的非傳統(tǒng)戰(zhàn)略和技術的總稱。雖然處理數(shù)據所需的計算能力或存儲容量早已超過一臺計算機的上限,但這種計算類型的普遍性、規(guī)模,以及價值在最近幾年才經歷了大規(guī)模擴展。

大數(shù)據系統(tǒng)一個最基本的組件:處理框架。處理框架負責對系統(tǒng)中的數(shù)據進行計算,例如處理從非易失存儲中讀取的數(shù)據,或處理剛剛攝入到系統(tǒng)中的數(shù)據。數(shù)據的計算則是指從大量單一數(shù)據點中提取信息和見解的過程。下文將介紹這些框架:

僅批處理框架:
    Apache Hadoop
僅流處理框架:
    Apache Storm
    Apache Samza
混合框架:
    Apache Spark
    Apache Flink

大數(shù)據處理框架是什么?

處理框架和處理引擎負責對數(shù)據系統(tǒng)中的數(shù)據進行計算。雖然“引擎”和“框架”之間的區(qū)別沒有什么權威的定義,但大部分時候可以將前者定義為實際負責處理數(shù)據操作的組件,后者則可定義為承擔類似作用的一系列組件。

例如Apache Hadoop可以看作一種以MapReduce作為默認處理引擎的處理框架。引擎和框架通常可以相互替換或同時使用。例如另一個框架Apache Spark可以納入Hadoop并取代MapReduce。組件之間的這種互操作性是大數(shù)據系統(tǒng)靈活性如此之高的原因之一。

雖然負責處理生命周期內這一階段數(shù)據的系統(tǒng)通常都很復雜,但從廣義層面來看它們的目標是非常一致的:通過對數(shù)據執(zhí)行操作提高理解能力,揭示出數(shù)據蘊含的模式,并針對復雜互動獲得見解。

為了簡化這些組件的討論,我們會通過不同處理框架的設計意圖,按照所處理的數(shù)據狀態(tài)對其進行分類。一些系統(tǒng)可以用批處理方式處理數(shù)據,一些系統(tǒng)可以用流方式處理連續(xù)不斷流入系統(tǒng)的數(shù)據。此外還有一些系統(tǒng)可以同時處理這兩類數(shù)據。

一、批處理系統(tǒng)

批處理在大數(shù)據世界有著悠久的歷史。批處理主要操作大容量靜態(tài)數(shù)據集,并在計算過程完成后返回結果。

批處理模式中使用的數(shù)據集通常符合下列特征…

有界:批處理數(shù)據集代表數(shù)據的有限集合
持久:數(shù)據通常始終存儲在某種類型的持久存儲位置中
大量:批處理操作通常是處理極為海量數(shù)據集的唯一方法

批處理非常適合需要訪問全套記錄才能完成的計算工作。例如在計算總數(shù)和平均數(shù)時,必須將數(shù)據集作為一個整體加以處理,而不能將其視作多條記錄的集合。這些操作要求在計算進行過程中數(shù)據維持自己的狀態(tài)。

需要處理大量數(shù)據的任務通常最適合用批處理操作進行處理。無論直接從持久存儲設備處理數(shù)據集,或首先將數(shù)據集載入內存,批處理系統(tǒng)在設計過程中就充分考慮了數(shù)據的量,可提供充足的處理資源。由于批處理在應對大量持久數(shù)據方面的表現(xiàn)極為出色,因此經常被用于對歷史數(shù)據進行分析。

大量數(shù)據的處理需要付出大量時間,因此批處理不適合對處理時間要求較高的場合。

Apache Hadoop

Apache Hadoop是一種專用于批處理的處理框架。Hadoop是首個在開源社區(qū)獲得極大關注的大數(shù)據框架。基于谷歌有關海量數(shù)據處理所發(fā)表的多篇論文與經驗的Hadoop重新實現(xiàn)了相關算法和組件堆棧,讓大規(guī)模批處理技術變得更易用。

新版Hadoop包含多個組件,即多個層,通過配合使用可處理批數(shù)據:

HDFS:HDFS是一種分布式文件系統(tǒng)層,可對集群節(jié)點間的存儲和復制進行協(xié)調。HDFS確保了無法避免的節(jié)點故障發(fā)生后數(shù)據依然可用,可將其用作數(shù)據來源,可用于存儲中間態(tài)的處理結果,并可存儲計算的最終結果。
YARN:YARN是Yet Another Resource Negotiator(另一個資源管理器)的縮寫,可充當Hadoop堆棧的集群協(xié)調組件。該組件負責協(xié)調并管理底層資源和調度作業(yè)的運行。通過充當集群資源的接口,YARN使得用戶能在Hadoop集群中使用比以往的迭代方式運行更多類型的工作負載。
MapReduce:MapReduce是Hadoop的原生批處理引擎。

批處理模式

Hadoop的處理功能來自MapReduce引擎。MapReduce的處理技術符合使用鍵值對的map、shuffle、reduce算法要求。基本處理過程包括:

從HDFS文件系統(tǒng)讀取數(shù)據集
將數(shù)據集拆分成小塊并分配給所有可用節(jié)點
針對每個節(jié)點上的數(shù)據子集進行計算(計算的中間態(tài)結果會重新寫入HDFS)
重新分配中間態(tài)結果并按照鍵進行分組
通過對每個節(jié)點計算的結果進行匯總和組合對每個鍵的值進行“Reducing”
將計算而來的最終結果重新寫入 HDFS

優(yōu)勢和局限

由于這種方法嚴重依賴持久存儲,每個任務需要多次執(zhí)行讀取和寫入操作,因此速度相對較慢。但另一方面由于磁盤空間通常是服務器上最豐富的資源,這意味著MapReduce可以處理非常海量的數(shù)據集。同時也意味著相比其他類似技術,Hadoop的MapReduce通常可以在廉價硬件上運行,因為該技術并不需要將一切都存儲在內存中。MapReduce具備極高的縮放潛力,生產環(huán)境中曾經出現(xiàn)過包含數(shù)萬個節(jié)點的應用。

MapReduce的學習曲線較為陡峭,雖然Hadoop生態(tài)系統(tǒng)的其他周邊技術可以大幅降低這一問題的影響,但通過Hadoop集群快速實現(xiàn)某些應用時依然需要注意這個問題。

圍繞Hadoop已經形成了遼闊的生態(tài)系統(tǒng),Hadoop集群本身也經常被用作其他軟件的組成部件。很多其他處理框架和引擎通過與Hadoop集成也可以使用HDFS和YARN資源管理器。

總結

Apache Hadoop及其MapReduce處理引擎提供了一套久經考驗的批處理模型,最適合處理對時間要求不高的非常大規(guī)模數(shù)據集。通過非常低成本的組件即可搭建完整功能的Hadoop集群,使得這一廉價且高效的處理技術可以靈活應用在很多案例中。與其他框架和引擎的兼容與集成能力使得Hadoop可以成為使用不同技術的多種工作負載處理平臺的底層基礎。

二、流處理系統(tǒng)

流處理系統(tǒng)會對隨時進入系統(tǒng)的數(shù)據進行計算。相比批處理模式,這是一種截然不同的處理方式。流處理方式無需針對整個數(shù)據集執(zhí)行操作,而是對通過系統(tǒng)傳輸?shù)拿總€數(shù)據項執(zhí)行操作。流處理中的數(shù)據集是“無邊界”的,這就產生了幾個重要的影響:

完整數(shù)據集只能代表截至目前已經進入到系統(tǒng)中的數(shù)據總量。
工作數(shù)據集也許更相關,在特定時間只能代表某個單一數(shù)據項。
處理工作是基于事件的,除非明確停止否則沒有“盡頭”。處理結果立刻可用,并會隨著新數(shù)據的抵達繼續(xù)更新。

流處理系統(tǒng)可以處理幾乎無限量的數(shù)據,但同一時間只能處理一條(真正的流處理)或很少量(微批處理,Micro-batch Processing)數(shù)據,不同記錄間只維持最少量的狀態(tài)。雖然大部分系統(tǒng)提供了用于維持某些狀態(tài)的方法,但流處理主要針對副作用更少,更加功能性的處理(Functional processing)進行優(yōu)化。

功能性操作主要側重于狀態(tài)或副作用有限的離散步驟。針對同一個數(shù)據執(zhí)行同一個操作會或略其他因素產生相同的結果,此類處理非常適合流處理,因為不同項的狀態(tài)通常是某些困難、限制,以及某些情況下不需要的結果的結合體。因此雖然某些類型的狀態(tài)管理通常是可行的,但這些框架通常在不具備狀態(tài)管理機制時更簡單也更高效。

此類處理非常適合某些類型的工作負載。有近實時處理需求的任務很適合使用流處理模式。分析、服務器或應用程序錯誤日志,以及其他基于時間的衡量指標是最適合的類型,因為對這些領域的數(shù)據變化做出響應對于業(yè)務職能來說是極為關鍵的。流處理很適合用來處理必須對變動或峰值做出響應,并且關注一段時間內變化趨勢的數(shù)據。

Apache Storm

Apache Storm是一種側重于極低延遲的流處理框架,也許是要求近實時處理的工作負載的最佳選擇。該技術可處理非常大量的數(shù)據,通過比其他解決方案更低的延遲提供結果。

流處理模式

Storm的流處理可對框架中名為Topology(拓撲)的DAG(Directed Acyclic Graph,有向無環(huán)圖)進行編排。這些拓撲描述了當數(shù)據片段進入系統(tǒng)后,需要對每個傳入的片段執(zhí)行的不同轉換或步驟。

拓撲包含:

Stream:普通的數(shù)據流,這是一種會持續(xù)抵達系統(tǒng)的無邊界數(shù)據。
Spout:位于拓撲邊緣的數(shù)據流來源,例如可以是API或查詢等,從這里可以產生待處理的數(shù)據。
Bolt:Bolt代表需要消耗流數(shù)據,對其應用操作,并將結果以流的形式進行輸出的處理步驟。Bolt需要與每個Spout建立連接,隨后相互連接以組成所有必要的處理。在拓撲的尾部,可以使用最終的Bolt輸出作為相互連接的其他系統(tǒng)的輸入。

Storm背后的想法是使用上述組件定義大量小型的離散操作,隨后將多個組件組成所需拓撲。默認情況下Storm提供了“至少一次”的處理保證,這意味著可以確保每條消息至少可以被處理一次,但某些情況下如果遇到失敗可能會處理多次。Storm無法確保可以按照特定順序處理消息。

為了實現(xiàn)嚴格的一次處理,即有狀態(tài)處理,可以使用一種名為Trident的抽象。嚴格來說不使用Trident的Storm通常可稱之為Core Storm。Trident會對Storm的處理能力產生極大影響,會增加延遲,為處理提供狀態(tài),使用微批模式代替逐項處理的純粹流處理模式。

為避免這些問題,通常建議Storm用戶盡可能使用Core Storm。然而也要注意,Trident對內容嚴格的一次處理保證在某些情況下也比較有用,例如系統(tǒng)無法智能地處理重復消息時。如果需要在項之間維持狀態(tài),例如想要計算一個小時內有多少用戶點擊了某個鏈接,此時Trident將是你唯一的選擇。盡管不能充分發(fā)揮框架與生俱來的優(yōu)勢,但Trident提高了Storm的靈活性。

Trident拓撲包含:

流批(Stream batch):這是指流數(shù)據的微批,可通過分塊提供批處理語義。
操作(Operation):是指可以對數(shù)據執(zhí)行的批處理過程。

優(yōu)勢和局限

目前來說Storm可能是近實時處理領域的最佳解決方案。該技術可以用極低延遲處理數(shù)據,可用于希望獲得最低延遲的工作負載。如果處理速度直接影響用戶體驗,例如需要將處理結果直接提供給訪客打開的網站頁面,此時Storm將會是一個很好的選擇。

Storm與Trident配合使得用戶可以用微批代替純粹的流處理。雖然借此用戶可以獲得更大靈活性打造更符合要求的工具,但同時這種做法會削弱該技術相比其他解決方案最大的優(yōu)勢。話雖如此,但多一種流處理方式總是好的。

Core Storm無法保證消息的處理順序。Core Storm為消息提供了“至少一次”的處理保證,這意味著可以保證每條消息都能被處理,但也可能發(fā)生重復。Trident提供了嚴格的一次處理保證,可以在不同批之間提供順序處理,但無法在一個批內部實現(xiàn)順序處理。

在互操作性方面,Storm可與Hadoop的YARN資源管理器進行集成,因此可以很方便地融入現(xiàn)有Hadoop部署。除了支持大部分處理框架,Storm還可支持多種語言,為用戶的拓撲定義提供了更多選擇。

總結

對于延遲需求很高的純粹的流處理工作負載,Storm可能是最適合的技術。該技術可以保證每條消息都被處理,可配合多種編程語言使用。由于Storm無法進行批處理,如果需要這些能力可能還需要使用其他軟件。如果對嚴格的一次處理保證有比較高的要求,此時可考慮使用Trident。不過這種情況下其他流處理框架也許更適合。

Apache Samza

Apache Samza是一種與Apache Kafka消息系統(tǒng)緊密綁定的流處理框架。雖然Kafka可用于很多流處理系統(tǒng),但按照設計,Samza可以更好地發(fā)揮Kafka獨特的架構優(yōu)勢和保障。該技術可通過Kafka提供容錯、緩沖,以及狀態(tài)存儲。

Samza可使用YARN作為資源管理器。這意味著默認情況下需要具備Hadoop集群(至少具備HDFS和YARN),但同時也意味著Samza可以直接使用YARN豐富的內建功能。

流處理模式

Samza依賴Kafka的語義定義流的處理方式。Kafka在處理數(shù)據時涉及下列概念:

Topic(話題):進入Kafka系統(tǒng)的每個數(shù)據流可稱之為一個話題。話題基本上是一種可供消耗方訂閱的,由相關信息組成的數(shù)據流。
Partition(分區(qū)):為了將一個話題分散至多個節(jié)點,Kafka會將傳入的消息劃分為多個分區(qū)。分區(qū)的劃分將基于鍵(Key)進行,這樣可以保證包含同一個鍵的每條消息可以劃分至同一個分區(qū)。分區(qū)的順序可獲得保證。
Broker(代理):組成Kafka集群的每個節(jié)點也叫做代理。
Producer(生成方):任何向Kafka話題寫入數(shù)據的組件可以叫做生成方。生成方可提供將話題劃分為分區(qū)所需的鍵。
Consumer(消耗方):任何從Kafka讀取話題的組件可叫做消耗方。消耗方需要負責維持有關自己分支的信息,這樣即可在失敗后知道哪些記錄已經被處理過了。

由于Kafka相當于永恒不變的日志,Samza也需要處理永恒不變的數(shù)據流。這意味著任何轉換創(chuàng)建的新數(shù)據流都可被其他組件所使用,而不會對最初的數(shù)據流產生影響。

優(yōu)勢和局限

乍看之下,Samza對Kafka類查詢系統(tǒng)的依賴似乎是一種限制,然而這也可以為系統(tǒng)提供一些獨特的保證和功能,這些內容也是其他流處理系統(tǒng)不具備的。

例如Kafka已經提供了可以通過低延遲方式訪問的數(shù)據存儲副本,此外還可以為每個數(shù)據分區(qū)提供非常易用且低成本的多訂閱者模型。所有輸出內容,包括中間態(tài)的結果都可寫入到Kafka,并可被下游步驟獨立使用。

這種對Kafka的緊密依賴在很多方面類似于MapReduce引擎對HDFS的依賴。雖然在批處理的每個計算之間對HDFS的依賴導致了一些嚴重的性能問題,但也避免了流處理遇到的很多其他問題。

Samza與Kafka之間緊密的關系使得處理步驟本身可以非常松散地耦合在一起。無需事先協(xié)調,即可在輸出的任何步驟中增加任意數(shù)量的訂閱者,對于有多個團隊需要訪問類似數(shù)據的組織,這一特性非常有用。多個團隊可以全部訂閱進入系統(tǒng)的數(shù)據話題,或任意訂閱其他團隊對數(shù)據進行過某些處理后創(chuàng)建的話題。這一切并不會對數(shù)據庫等負載密集型基礎架構造成額外的壓力。

直接寫入Kafka還可避免回壓(Backpressure)問題。回壓是指當負載峰值導致數(shù)據流入速度超過組件實時處理能力的情況,這種情況可能導致處理工作停頓并可能丟失數(shù)據。按照設計,Kafka可以將數(shù)據保存很長時間,這意味著組件可以在方便的時候繼續(xù)進行處理,并可直接重啟動而無需擔心造成任何后果。

Samza可以使用以本地鍵值存儲方式實現(xiàn)的容錯檢查點系統(tǒng)存儲數(shù)據。這樣Samza即可獲得“至少一次”的交付保障,但面對由于數(shù)據可能多次交付造成的失敗,該技術無法對匯總后狀態(tài)(例如計數(shù))提供精確恢復。

Samza提供的高級抽象使其在很多方面比Storm等系統(tǒng)提供的基元(Primitive)更易于配合使用。目前Samza只支持JVM語言,這意味著它在語言支持方面不如Storm靈活。

總結

對于已經具備或易于實現(xiàn)Hadoop和Kafka的環(huán)境,Apache Samza是流處理工作負載一個很好的選擇。Samza本身很適合有多個團隊需要使用(但相互之間并不一定緊密協(xié)調)不同處理階段的多個數(shù)據流的組織。Samza可大幅簡化很多流處理工作,可實現(xiàn)低延遲的性能。如果部署需求與當前系統(tǒng)不兼容,也許并不適合使用,但如果需要極低延遲的處理,或對嚴格的一次處理語義有較高需求,此時依然適合考慮。

三、混合處理系統(tǒng):批處理和流處理

一些處理框架可同時處理批處理和流處理工作負載。這些框架可以用相同或相關的組件和API處理兩種類型的數(shù)據,借此讓不同的處理需求得以簡化。

如你所見,這一特性主要是由Spark和Flink實現(xiàn)的,下文將介紹這兩種框架。實現(xiàn)這樣的功能重點在于兩種不同處理模式如何進行統(tǒng)一,以及要對固定和不固定數(shù)據集之間的關系進行何種假設。

雖然側重于某一種處理類型的項目會更好地滿足具體用例的要求,但混合框架意在提供一種數(shù)據處理的通用解決方案。這種框架不僅可以提供處理數(shù)據所需的方法,而且提供了自己的集成項、庫、工具,可勝任圖形分析、機器學習、交互式查詢等多種任務。

Apache Spark

Apache Spark是一種包含流處理能力的下一代批處理框架。與Hadoop的MapReduce引擎基于各種相同原則開發(fā)而來的Spark主要側重于通過完善的內存計算和處理優(yōu)化機制加快批處理工作負載的運行速度。

Spark可作為獨立集群部署(需要相應存儲層的配合),或可與Hadoop集成并取代MapReduce引擎。

批處理模式

與MapReduce不同,Spark的數(shù)據處理工作全部在內存中進行,只在一開始將數(shù)據讀入內存,以及將最終結果持久存儲時需要與存儲層交互。所有中間態(tài)的處理結果均存儲在內存中。

雖然內存中處理方式可大幅改善性能,Spark在處理與磁盤有關的任務時速度也有很大提升,因為通過提前對整個任務集進行分析可以實現(xiàn)更完善的整體式優(yōu)化。為此Spark可創(chuàng)建代表所需執(zhí)行的全部操作,需要操作的數(shù)據,以及操作和數(shù)據之間關系的Directed Acyclic Graph(有向無環(huán)圖),即DAG,借此處理器可以對任務進行更智能的協(xié)調。

為了實現(xiàn)內存中批計算,Spark會使用一種名為Resilient Distributed Dataset(彈性分布式數(shù)據集),即RDD的模型來處理數(shù)據。這是一種代表數(shù)據集,只位于內存中,永恒不變的結構。針對RDD執(zhí)行的操作可生成新的RDD。每個RDD可通過世系(Lineage)回溯至父級RDD,并最終回溯至磁盤上的數(shù)據。Spark可通過RDD在無需將每個操作的結果寫回磁盤的前提下實現(xiàn)容錯。

流處理模式

流處理能力是由Spark Streaming實現(xiàn)的。Spark本身在設計上主要面向批處理工作負載,為了彌補引擎設計和流處理工作負載特征方面的差異,Spark實現(xiàn)了一種叫做微批(Micro-batch)*的概念。在具體策略方面該技術可以將數(shù)據流視作一系列非常小的“批”,借此即可通過批處理引擎的原生語義進行處理。

Spark Streaming會以亞秒級增量對流進行緩沖,隨后這些緩沖會作為小規(guī)模的固定數(shù)據集進行批處理。這種方式的實際效果非常好,但相比真正的流處理框架在性能方面依然存在不足。

優(yōu)勢和局限

使用Spark而非Hadoop MapReduce的主要原因是速度。在內存計算策略和先進的DAG調度等機制的幫助下,Spark可以用更快速度處理相同的數(shù)據集。

Spark的另一個重要優(yōu)勢在于多樣性。該產品可作為獨立集群部署,或與現(xiàn)有Hadoop集群集成。該產品可運行批處理和流處理,運行一個集群即可處理不同類型的任務。

除了引擎自身的能力外,圍繞Spark還建立了包含各種庫的生態(tài)系統(tǒng),可為機器學習、交互式查詢等任務提供更好的支持。相比MapReduce,Spark任務更是“眾所周知”地易于編寫,因此可大幅提高生產力。

為流處理系統(tǒng)采用批處理的方法,需要對進入系統(tǒng)的數(shù)據進行緩沖。緩沖機制使得該技術可以處理非常大量的傳入數(shù)據,提高整體吞吐率,但等待緩沖區(qū)清空也會導致延遲增高。這意味著Spark Streaming可能不適合處理對延遲有較高要求的工作負載。

由于內存通常比磁盤空間更貴,因此相比基于磁盤的系統(tǒng),Spark成本更高。然而處理速度的提升意味著可以更快速完成任務,在需要按照小時數(shù)為資源付費的環(huán)境中,這一特性通常可以抵消增加的成本。

Spark內存計算這一設計的另一個后果是,如果部署在共享的集群中可能會遇到資源不足的問題。相比Hadoop MapReduce,Spark的資源消耗更大,可能會對需要在同一時間使用集群的其他任務產生影響。從本質來看,Spark更不適合與Hadoop堆棧的其他組件共存一處。

總結

Spark是多樣化工作負載處理任務的最佳選擇。Spark批處理能力以更高內存占用為代價提供了無與倫比的速度優(yōu)勢。對于重視吞吐率而非延遲的工作負載,則比較適合使用Spark Streaming作為流處理解決方案。

Apache Flink

Apache Flink是一種可以處理批處理任務的流處理框架。該技術可將批處理數(shù)據視作具備有限邊界的數(shù)據流,借此將批處理任務作為流處理的子集加以處理。為所有處理任務采取流處理為先的方法會產生一系列有趣的副作用。

這種流處理為先的方法也叫做Kappa架構,與之相對的是更加被廣為人知的Lambda架構(該架構中使用批處理作為主要處理方法,使用流作為補充并提供早期未經提煉的結果)。Kappa架構中會對一切進行流處理,借此對模型進行簡化,而這一切是在最近流處理引擎逐漸成熟后才可行的。

流處理模型

Flink的流處理模型在處理傳入數(shù)據時會將每一項視作真正的數(shù)據流。Flink提供的DataStream API可用于處理無盡的數(shù)據流。Flink可配合使用的基本組件包括:

Stream(流):是指在系統(tǒng)中流轉的,永恒不變的無邊界數(shù)據集
Operator(操作方):是指針對數(shù)據流執(zhí)行操作以產生其他數(shù)據流的功能
Source(源):是指數(shù)據流進入系統(tǒng)的入口點
Sink(槽):是指數(shù)據流離開Flink系統(tǒng)后進入到的位置,槽可以是數(shù)據庫或到其他系統(tǒng)的連接器

為了在計算過程中遇到問題后能夠恢復,流處理任務會在預定時間點創(chuàng)建快照。為了實現(xiàn)狀態(tài)存儲,F(xiàn)link可配合多種狀態(tài)后端系統(tǒng)使用,具體取決于所需實現(xiàn)的復雜度和持久性級別。

此外Flink的流處理能力還可以理解“事件時間”這一概念,這是指事件實際發(fā)生的時間,此外該功能還可以處理會話。這意味著可以通過某種有趣的方式確保執(zhí)行順序和分組。

批處理模型

Flink的批處理模型在很大程度上僅僅是對流處理模型的擴展。此時模型不再從持續(xù)流中讀取數(shù)據,而是從持久存儲中以流的形式讀取有邊界的數(shù)據集。Flink會對這些處理模型使用完全相同的運行時。

Flink可以對批處理工作負載實現(xiàn)一定的優(yōu)化。例如由于批處理操作可通過持久存儲加以支持,F(xiàn)link可以不對批處理工作負載創(chuàng)建快照。數(shù)據依然可以恢復,但常規(guī)處理操作可以執(zhí)行得更快。

另一個優(yōu)化是對批處理任務進行分解,這樣即可在需要的時候調用不同階段和組件。借此Flink可以與集群的其他用戶更好地共存。對任務提前進行分析使得Flink可以查看需要執(zhí)行的所有操作、數(shù)據集的大小,以及下游需要執(zhí)行的操作步驟,借此實現(xiàn)進一步的優(yōu)化。

優(yōu)勢和局限

Flink目前是處理框架領域一個獨特的技術。雖然Spark也可以執(zhí)行批處理和流處理,但Spark的流處理采取的微批架構使其無法適用于很多用例。Flink流處理為先的方法可提供低延遲,高吞吐率,近乎逐項處理的能力。

Flink的很多組件是自行管理的。雖然這種做法較為罕見,但出于性能方面的原因,該技術可自行管理內存,無需依賴原生的Java垃圾回收機制。與Spark不同,待處理數(shù)據的特征發(fā)生變化后Flink無需手工優(yōu)化和調整,并且該技術也可以自行處理數(shù)據分區(qū)和自動緩存等操作。

Flink會通過多種方式對工作進行分許進而優(yōu)化任務。這種分析在部分程度上類似于SQL查詢規(guī)劃器對關系型數(shù)據庫所做的優(yōu)化,可針對特定任務確定最高效的實現(xiàn)方法。該技術還支持多階段并行執(zhí)行,同時可將受阻任務的數(shù)據集合在一起。對于迭代式任務,出于性能方面的考慮,F(xiàn)link會嘗試在存儲數(shù)據的節(jié)點上執(zhí)行相應的計算任務。此外還可進行“增量迭代”,或僅對數(shù)據中有改動的部分進行迭代。

在用戶工具方面,F(xiàn)link提供了基于Web的調度視圖,借此可輕松管理任務并查看系統(tǒng)狀態(tài)。用戶也可以查看已提交任務的優(yōu)化方案,借此了解任務最終是如何在集群中實現(xiàn)的。對于分析類任務,F(xiàn)link提供了類似SQL的查詢,圖形化處理,以及機器學習庫,此外還支持內存計算。

Flink能很好地與其他組件配合使用。如果配合Hadoop 堆棧使用,該技術可以很好地融入整個環(huán)境,在任何時候都只占用必要的資源。該技術可輕松地與YARN、HDFS和Kafka 集成。在兼容包的幫助下,F(xiàn)link還可以運行為其他處理框架,例如Hadoop和Storm編寫的任務。

目前Flink最大的局限之一在于這依然是一個非常“年幼”的項目。現(xiàn)實環(huán)境中該項目的大規(guī)模部署尚不如其他處理框架那么常見,對于Flink在縮放能力方面的局限目前也沒有較為深入的研究。隨著快速開發(fā)周期的推進和兼容包等功能的完善,當越來越多的組織開始嘗試時,可能會出現(xiàn)越來越多的Flink部署。

總結

Flink提供了低延遲流處理,同時可支持傳統(tǒng)的批處理任務。Flink也許最適合有極高流處理需求,并有少量批處理任務的組織。該技術可兼容原生Storm和Hadoop程序,可在YARN管理的集群上運行,因此可以很方便地進行評估。快速進展的開發(fā)工作使其值得被大家關注。

結論

大數(shù)據系統(tǒng)可使用多種處理技術。

對于僅需要批處理的工作負載,如果對時間不敏感,比其他解決方案實現(xiàn)成本更低的Hadoop將會是一個好選擇。

對于僅需要流處理的工作負載,Storm可支持更廣泛的語言并實現(xiàn)極低延遲的處理,但默認配置可能產生重復結果并且無法保證順序。Samza與YARN和Kafka緊密集成可提供更大靈活性,更易用的多團隊使用,以及更簡單的復制和狀態(tài)管理。

對于混合型工作負載,Spark可提供高速批處理和微批處理模式的流處理。該技術的支持更完善,具備各種集成庫和工具,可實現(xiàn)靈活的集成。Flink提供了真正的流處理并具備批處理能力,通過深度優(yōu)化可運行針對其他平臺編寫的任務,提供低延遲的處理,但實際應用方面還為時過早。

最適合的解決方案主要取決于待處理數(shù)據的狀態(tài),對處理所需時間的需求,以及希望得到的結果。具體是使用全功能解決方案或主要側重于某種項目的解決方案,這個問題需要慎重權衡。隨著逐漸成熟并被廣泛接受,在評估任何新出現(xiàn)的創(chuàng)新型解決方案時都需要考慮類似的問題。

責任編輯:華軒 來源: 數(shù)字化助推器
相關推薦

2017-05-05 12:59:00

大數(shù)據物聯(lián)網安全

2018-04-03 13:08:31

2019-11-29 17:26:56

大數(shù)據分布式計算技術

2018-03-17 09:00:21

大數(shù)據 區(qū)塊鏈

2015-03-17 11:28:03

大數(shù)據黃色小象Hadoop

2020-03-20 16:54:14

戴爾

2021-07-05 10:48:42

大數(shù)據實時計算

2022-10-20 08:01:23

2025-04-30 10:36:17

2014-04-29 09:59:44

2021-11-02 10:53:56

Linux機制CPU

2019-01-30 09:30:50

大數(shù)據互聯(lián)網人工智能

2025-08-25 09:12:48

2022-08-27 10:37:48

電子取證信息安全

2023-12-10 14:59:53

2021-08-04 16:06:45

DataOps智領云

2023-12-22 19:59:15

2024-05-27 00:45:00

2023-06-19 13:57:00

數(shù)據系統(tǒng)

2017-06-02 15:32:09

大數(shù)據數(shù)據可視化
點贊
收藏

51CTO技術棧公眾號

老司机免费视频一区二区 | 成人精品电影| 国产精品嫩草99a| 国内偷自视频区视频综合| 精品伦理一区二区三区| 2017亚洲天堂| 欧美一区二区三区成人片在线| 欧美色就是色| 欧美一卡二卡在线| 一区二区三区四区在线视频| 91精品国产综合久久久蜜臀九色 | 成人网在线免费观看| 99re这里只有| 五月花成人网| 日本黄色精品| 精品美女一区二区三区| 超碰97免费观看| 怡春院在线视频| 欧美精品乱码| 欧美日韩激情美女| 国产伦精品一区二区三区照片91| 强制高潮抽搐sm调教高h| 免费观看成人性生生活片| 成人av在线网站| 欧美精品videosex极品1| 亚洲国产欧美91| 26uuu亚洲电影在线观看| 国产自产高清不卡| 久久久精品一区| 男操女免费网站| 国产天堂素人系列在线视频| 精品电影一区| 精品av久久707| 婷婷五月综合缴情在线视频| 丰满少妇在线观看bd| 欧美日韩国产色综合一二三四| 欧美一区二区成人| 国产三级三级看三级| 成人不用播放器| 蜜桃91丨九色丨蝌蚪91桃色| 日韩在线观看免费网站| 日日干日日操日日射| 黄在线免费观看| 国产精一品亚洲二区在线视频| xxav国产精品美女主播| 超碰在线人人爱| 国产资源在线观看入口av| 夫妻av一区二区| 91高清视频免费观看| 精品无码国产污污污免费网站| 中文字幕资源网在线观看免费| 97精品视频在线观看自产线路二| 日韩av理论片| 成人自拍小视频| 99a精品视频在线观看| 欧美性猛交xxxx乱大交极品| 亚洲第一导航| 午夜久久久久久久久久| 亚洲深爱激情| www国产精品视频| 日日操免费视频| 91综合久久爱com| 日韩亚洲欧美成人一区| www.日本少妇| av中文字幕在线| 国产欧美日韩亚州综合 | 久久久久久久久久久久久久av| 国产一区三区在线播放| 欧美一三区三区四区免费在线看 | 亚洲天堂一区在线| 欧美午夜18电影| 欧美视频你懂的| 日本精品福利视频| 青梅竹马是消防员在线| 久久国产福利国产秒拍| 9.1国产丝袜在线观看| 精品91久久久| 亚洲精品国产首次亮相| 日韩av中文字幕在线播放| 自拍偷拍一区二区三区四区| 四虎国产精品永久在线国在线 | 中文亚洲视频在线| 成年人性生活视频| 最新日韩三级| 亚洲成人综合视频| 亚洲一区免费看| 无码国精品一区二区免费蜜桃| 久久99久久久久久久久久久| 成人激情av在线| 亚洲国产综合一区| 加勒比av一区二区| 国产精品观看在线亚洲人成网| 在线免费日韩av| 不卡av一区二区| 久色乳综合思思在线视频| 受虐m奴xxx在线观看| 欧美大片91| 欧美日韩一区二区在线观看| 久久综合桃花网| 理论片一区二区在线| 日韩欧美在线网站| 性chinese极品按摩| 国产精品视频一区视频二区| 欧美三级日本三级少妇99| 在线免费黄色小视频| 日韩高清成人在线| 亚洲精品按摩视频| 亚洲 自拍 另类 欧美 丝袜| 成人在线中文| 一本到高清视频免费精品| 日韩xxxx视频| 久久久加勒比| 欧美三级资源在线| 秘密基地免费观看完整版中文| 国产色99精品9i| 亚洲免费高清视频| 国产精品无码永久免费不卡| 超碰97久久国产精品牛牛| 亚洲免费电影在线观看| 久久黄色免费网站| 国产精品videosex极品| 久久91精品国产91久久跳| 欧美色视频一区二区三区在线观看| 国产综合自拍| 国产欧美日韩视频| 国产有码在线观看| 激情综合网av| 麻豆91蜜桃| 欧美女优在线| 国产精品天干天干在线综合| 亚洲不卡1区| 日韩理伦片在线| 日韩理论片中文av| 400部精品国偷自产在线观看| 二区三区在线观看| 一卡二卡三卡日韩欧美| 国产a级黄色大片| 亚洲成av在线| 亚洲免费伊人电影在线观看av| 麻豆一区产品精品蜜桃的特点| 乱一区二区av| 翔田千里亚洲一二三区| 偷拍视频一区二区三区| 亚洲第一网中文字幕| 国产精品815.cc红桃| 亚洲全部视频| 国产精品aaaa| 国产视频第一页| 懂色一区二区三区免费观看 | 国产香蕉精品视频| 北条麻妃一区二区三区在线| 久久成人18免费网站| 在线观看亚洲国产| 国产成人午夜精品影院观看视频 | 99国产精品免费视频| 国产精品久久久久一区二区三区厕所| 大量国产精品视频| 亚洲天堂狠狠干| 国产精品久久久久久亚洲伦 | 无码人妻av一区二区三区波多野 | 午夜天堂影视香蕉久久| 日韩a在线播放| 91精品麻豆| 亚洲福利影片在线| 亚洲激情视频一区| 男男视频亚洲欧美| 日韩三级电影免费观看| 日本资源在线| 精品处破学生在线二十三| 美女视频黄免费| k8久久久一区二区三区 | 欧美日韩一区二区三区四区| 免费看的黄色录像| 国产制服丝袜一区| 国产av熟女一区二区三区| 欧美特黄aaaaaaaa大片| 亚洲天堂av在线免费| 久久激情免费视频| 2023国产一二三区日本精品2022| 五月天综合婷婷| 国产+成+人+亚洲欧洲在线| 日韩小视频网址| 国产激情视频在线播放| 欧美国产精品中文字幕| 亚洲精品综合在线观看| 国产影视一区| 91久久夜色精品国产网站| 久久电影中文字幕| 亚洲国产视频在线| 亚洲欧美日本一区二区三区| 你懂的国产精品| 国产精品综合网站| 大地资源中文在线观看免费版| 欧美日韩一区国产| 日韩视频免费观看高清| 中文文精品字幕一区二区| 风韵丰满熟妇啪啪区老熟熟女| 久久久久久久欧美精品| 精品视频一区二区| 成人97精品毛片免费看| 91爱爱小视频k| 久草免费在线| 亚洲天堂免费视频| 国产一级精品视频| 亚洲欧洲中文日韩久久av乱码| 亚洲av片不卡无码久久| 国产一区999| 男人操女人免费软件| 激情小说亚洲色图| 8x拔播拔播x8国产精品| 91中文在线| 精品亚洲男同gayvideo网站| 免费在线一级片| wwwww在线观看免费视频| 欧美成人a交片免费看| 韩日欧美一区二区三区| 亚洲欧洲另类精品久久综合| 精品国产不卡一区二区| 91福利视频网| 嫩草香蕉在线91一二三区| 中文字幕日韩一区| 中文字幕乱视频| 奇米在线7777在线精品| 亚洲影院在线看| 日本不卡不卡| 亚洲国产精品久久久| 中文字幕1区2区3区| 国产精品久久国产精麻豆99网站| 日本在线视频www| 亚洲另类av| 国语自产精品视频在线看| 国产在线视频资源| 日韩精品在线影院| 成人免费观看在线视频| 欧美日本一道本在线视频| 中文字幕伦理片| 久久久成人网| 国产在线xxxx| 欧美激情成人| 亚洲jizzjizz日本少妇| 欧美色999| 7777精品视频| 中文在线资源| 国外视频精品毛片| 俄罗斯一级**毛片在线播放| 5月丁香婷婷综合| 日本黄色一级视频| 性做久久久久久免费观看| 992在线观看| 国产精品传媒入口麻豆| xxxx日本黄色| 日韩avvvv在线播放| aa在线免费观看| 在线精品福利| 黄色激情在线视频| 欧美日韩亚洲一区在线观看| av日韩在线看| 欧美日韩亚洲一区| 久久精品无码中文字幕| 亚洲精品极品| 成人一对一视频| 久久午夜影院| 鲁丝一区二区三区免费| 欧美偷窥清纯综合图区| 国产在线一区二区三区欧美| 午夜日韩成人影院| 日本亚洲欧美成人| 桃花岛tv亚洲品质| 国产精品成人v| 亚洲天堂网站| 97超级碰碰| 凹凸av导航大全精品| 欧美精品免费观看二区| 精品视频在线观看免费观看| 91精品视频在线看| 久久9999免费视频| 久久草视频在线看| 涩涩涩久久久成人精品| 91在线观看免费| 九色丨蝌蚪丨成人| 欧美亚洲另类久久综合| 波多野结衣在线观看一区二区三区| 欧美一级黄色录像片| 欧美日韩亚洲一区三区| 一区二区传媒有限公司| 成人久久电影| 神马午夜伦理影院| 国产精品片aa在线观看| 欧美亚洲免费高清在线观看| 日韩电影免费网址| 国产自产精品| 久久91麻豆精品一区| 国产精品10p综合二区| 国产成人午夜性a一级毛片| 国产欧美久久一区二区| 天堂va在线高清一区| 成人做爰www免费看视频网站| 精品国产18久久久久久二百| 久久久久久高清| 91精品国产自产拍在线观看蜜| 国产专区在线视频| 国产一区二区高清| 日韩高清在线一区二区| 一区二区国产精品| 蜜臀av.com| 国产精品久久观看| 色综合av综合无码综合网站| 美女爽到高潮91| 婷婷激情小说网| 国产亚洲一本大道中文在线| 免费在线观看日韩av| 91蝌蚪porny| 国产精品9191| 一区二区三区中文字幕精品精品 | 日本欧美一区二区三区乱码| 涩多多在线观看| 成人av在线网| 麻豆精品一区二区三区视频| 欧美性xxxx极品hd欧美风情| 中文字幕在线播放日韩| 日韩极品精品视频免费观看| 日本a级在线| 欧美在线一级va免费观看| 26uuu亚洲电影| 国产91|九色| 91国产精品| 美女精品国产| 亚洲午夜伦理| 亚洲高清视频免费| 国产精品污www在线观看| 韩国av中文字幕| 欧美成人官网二区| 91蜜桃在线视频| 国产在线观看91精品一区| 中文字幕一区二区三区四区久久 | 国产乱色精品成人免费视频| 精品视频在线导航| 欧美wwww| 97视频在线观看播放| 日产福利视频在线观看| 97久久久久久| 精品国产18久久久久久二百| 综合一区中文字幕| 奇米777欧美一区二区| 无码人妻一区二区三区在线| 一区二区三区欧美久久| 91免费视频播放| 亚洲欧美激情另类校园| 五月天国产在线| 国产在线一区二区三区欧美| 欧美aa国产视频| 曰本三级日本三级日本三级| 亚洲三级小视频| 中文字幕免费播放| 深夜福利国产精品| 成人免费黄色| gogogo免费高清日本写真| 久久国产精品99久久人人澡| 免费看的黄色网| 欧美精品v日韩精品v韩国精品v| 国产精品第6页| 欧美高清精品3d| www免费在线观看| 91中文字幕在线| 久久久久久久久久久9不雅视频| 日韩精品视频网址| 亚洲欧美视频在线观看| 国产成人精品免费看视频| 欧美国产中文字幕| 亚洲成人不卡| 欧美性大战久久久久| 久草精品在线观看| 朝桐光av在线| 日韩女优电影在线观看| 77thz桃花论族在线观看| 黄色小网站91| 香蕉亚洲视频| 亚洲少妇18p| 天天av天天翘天天综合网 | 亚洲一区二区三区在线观看视频 | 一区二区三区国产豹纹内裤在线| 六月婷婷中文字幕| 欧美在线观看日本一区| av一区二区在线播放| 亚洲涩涩在线观看| 亚洲精品乱码久久久久久黑人| 国产特级aaaaaa大片| 欧美一区二区色| 热久久天天拍国产| 爱豆国产剧免费观看大全剧苏畅| 亚洲免费大片在线观看| 人人妻人人澡人人爽人人欧美一区 | 欧美a级成人淫片免费看| 婷婷中文字幕在线观看| 疯狂蹂躏欧美一区二区精品| 久久精品a一级国产免视看成人| 成人激情电影一区二区| 销魂美女一区二区三区视频在线| 麻豆一区在线观看| 精品国内二区三区|