欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Flink和Apache

林子帆2年前15瀏覽0評論

Flink和Apache?

最近的實時流處理已經獲得了發展勢頭,啟用它的主要工具是Apache Spark和Apache Fink。通過數據處理、數據流、數據管理和使用這些工具的案例研究來學習。

對更快的數據處理的需求不斷增加,實時流數據處理似乎是答案。雖然Apache Spice仍在很多組織中用于大數據處理,但Apache FLink已經成為一種替代方案。事實上,許多人認為它有可能取代Apache SCAP,因為它能夠實時處理流數據。當然,關于弗林克能否取代火花的陪審團仍在進行中,因為弗林克尚未被廣泛接受。但是實時處理和低數據延遲是其定義特征的兩個方面。同時,這需要考慮Apache SCAP可能不會因為它的批處理能力將仍然相關而不受歡迎。

流數據處理實例

對于基于批處理的所有優點,實時流數據處理似乎有一個強有力的例子。流數據處理使得數據倉庫的建立和加載成為可能。具有低數據延遲的流處理器提供了對數據的更快的洞察力。所以,你有更多的時間去了解正在發生的事情。除了更快的處理,還有一個顯著的好處:你有更多的時間來設計一個適當的事件響應。例如,在異常檢測的情況下,較低的延遲和更快的檢測使您能夠識別最佳的響應,這是防止在諸如安全網站或工業設備損壞的欺騙性攻擊的情況下防止損壞的關鍵。所以,你可以防止實質性的損失。

什么是Apache Fink?

APACHE FLink是一種大規模的數據處理工具,它以大數據量的低數據延遲和高容錯性快速處理大數據。它的定義特征是它能夠實時處理流數據。

Apache Fink開始作為一個學術開源項目,在那時,它被稱為平流層。后來,它成為Apache軟件基金會孵化器的一部分。為了避免與另一個項目的名稱沖突,將名稱更改為弗林克。弗林克的名字是恰當的,因為它意味著敏捷。即使是選擇的標志,松鼠也是合適的,因為松鼠代表敏捷、靈活和速度的優點。

因為它被添加到Apache軟件基金會,它作為一個大的數據處理工具迅速崛起,在八個月內,它開始吸引更多的觀眾的注意力。人們對Flink的興趣越來越多,反映在2015年一些與會者的人數上。許多人參加了弗林克在2015年5月在倫敦召開的地層會議和2015年6月在圣若澤的Hadoop峰會上的會議。超過60人參加了海灣地區Apache Fink會議在2015年8月在圣若澤的MAPR總部舉辦。

下面的圖像給出了FLink的lambda架構。

spark與flink之間的比較

雖然spark和flink之間有一些相似之處,例如API和組件,但在數據處理方面,它們的相似性并不重要。下面給出的是flink和spark的比較。

數據處理

flink在批處理模式下處理數據,而Fink實時處理流數據。火花處理數據塊,稱為RDDS,而FLink可以實時處理行數據之后的行。因此,雖然最小的數據延遲總是在spark上存在,但spark卻不是這樣。

迭代

spark支持批處理中的數據迭代,但弗林克可以通過使用流式架構來對其數據進行迭代迭代。下面的圖像顯示了迭代處理是如何發生的。

內存管理

FLink可以自動適應不同的數據集,但spark需要手動優化和調整其作業到單個數據集。spark也進行手動分區和緩存。因此,期待一些延遲處理。

數據流

FLink在需要時能夠在數據處理上提供中間結果。spark遵循過程編程系統,FLink遵循分布式數據流方法。因此,每當需要中間結果時,廣播變量被用來將預先計算的結果分發給所有的工作者節點。

數據可視化

弗林克提供了一個提交和執行所有作業的Web界面。星火和弗林克都與Apache齊柏林飛船集成,并提供數據攝取、數據分析、發現、協作和可視化。Apache Zeppin還提供了一個多語言后端,允許您提交和執行FLink程序。

加工時間

下面的段落提供了flink和spark在不同工作中所花費的時間的比較。

為了進行公平的比較,flink和spark都以機器規格和節點配置的形式提供了相同的資源。

如上面的圖像所示,以紅色突出顯示的區域指示FLink和spark處理器的節點配置。

FLink由于流水線執行而處理得更快。為了處理數據,火花花了2171秒,而FLink花費了1490秒。

當具有不同數據大小的TeraSort被執行時,結果如下:

對于10GB的數據,flink花了157秒的時間與Skp887秒相比。

對于160GB的數據,flink花了3127秒與火花的427秒相比。

基于批處理或流數據-哪個過程更好?

這兩種方法都有優點,適用于不同的情況。盡管很多人聲稱基于批次的工具不受歡迎,但它不會在不久的將來發生。要了解它們的相對優勢,請參見以下比較:

流批處理

數據或輸入以特定的順序以記錄的形式到達。數據或輸入根據記錄的數量或時間分為批。

盡可能快地要求輸出,但不能比驗證序列所需的時間更早。輸入是根據要求給出的,但保留一定數量的批。

輸出在寫入后不需要修改,記錄新的狀態和輸出的所有行的細節。

也可以做批處理的數據無法做批量處理的數據

個別情況下,flink和批處理都是有用的。以每天滾動月度銷售計算為例。在這個活動中,需要的是計算每天的銷售總額,然后累積起來。在這樣的用例中,可能不需要流式數據處理。數據的批量處理可以根據日期來處理單個批次的銷售數字,然后添加它們。在這種情況下,即使存在一些數據延遲,當以后的潛在數據被添加到以后的批次中時,它總是可以稍后進行。

也有類似的用例需要流式處理。以計算每個訪問者在網站上的滾動月度時間為例。在網站的情況下,訪問次數可以更新,每小時,每分鐘,甚至每天。但這種情況下的問題是定義會話。定義會話的開始和結束可能是困難的。此外,很難計算或識別不活動的時期。因此,在這種情況下,沒有合理的界限來定義會話甚至是不活動的周期。在這樣的情況下,需要實時地進行流數據處理。

總結

雖然spark在批量數據處理方面有很多優勢,但它仍有許多用例可以迎合,看來弗林克正在迅速獲得商業牽引力。事實上,FLink也可以進行批量處理,這對其有利。當然,這需要考慮到FLink的批處理能力可能與spark不一樣。所以,火花仍然有一段時間。

java流式執行,Flink和Apache