迄今4代大數引擎概述

2021-10-12 02:58:05 字數 1334 閱讀 9825

在如今資料**的時代,企業的資料量與日俱增,大資料產品層出不窮。

出現了很多熱門的開源社群,其中著名的有 hadoop、storm,以及後來的 spark,他們都有著各自專注的應用場景。spark 掀開了記憶體計算的先河,也以記憶體為賭注,贏得了記憶體計算的飛速發展。spark 的火熱或多或少的掩蓋了其他分布式計算的系統身影。就像 flink,也就在這個時候默默的發展著。

從第1代的mapreduce,到第2代基於有向無環圖的tez,第3代基於記憶體計算的spark,再到第4代的flink。

第一代: hadoop 承載的 mapreduce。

這裡大家應該都不會對mapreduce陌生,它將計算分為兩個階段,分別為 map 和 reduce。對於上層應用來說,就不得不想方設法去拆分演算法,甚至於不得不在上層應用實現多個 job 的串聯,以完成乙個完整的演算法,例如迭代計算。

第二代: 支援dag框架的計算引擎

由於這樣的弊端,催生了支援 dag 框架的產生。因此,支援 dag 的框架被劃分為第二代計算引擎。如 tez 以及更上層的 oozie。這裡我們不去細究各種 dag 實現之間的區別,不過對於當時的 tez 和 oozie 來說,大多還是批處理的任務。

第三代: 內建dag的支援

接下來就是以 spark 為代表的第三代的計算引擎。第三代計算引擎的特點主要是 job 內部的 dag 支援(不跨越 job),以及強調的實時計算。在這裡,很多人也會認為第三代計算引擎也能夠很好的執行批處理的 job。

隨著第三代計算引擎的出現,促進了上層應用快速發展,例如各種迭代計算的效能以及對流計算和 sql 等的支援。

***:大資料統一計算引擎

「flink是乙個大資料量處理的統一的引擎」。這個「統一的引擎」包括流處理、批處理、ai、machinelearning、圖計算等等。

flink 的誕生就被歸在了***。這應該主要表現在 flink 對流計算的支援,以及更一步的實時性上面。當然 flink 也可以支援 batch 的任務,以及 dag 的運算。

或許會有人不同意以上的分類,我覺得其實這並不重要的,重要的是體會各個框架的差異,以及更適合的場景。並進行理解,沒有哪乙個框架可以完美的支援所有的場景,也就不可能有任何乙個框架能完全取代另乙個,就像 spark 沒有完全取代 hadoop,當然 flink 也不可能取代 spark。本文將致力描述 flink 的原理以及應用。

每天4億行SQLite訂單大資料測試(原始碼)

sqlite作為嵌入式資料庫的翹楚,廣受歡迎!新生命團隊自2010年以來,投入大量精力對sqlite進行學習研究,成功應用於各系統非致命資料場合。當然,sqlite不適合多執行緒高併發寫入,多執行緒高併發讀取倒是非常不錯。因為資料庫就在程序內,高併發讀取一般比其它rds要快一大截。總的來說,sqli...

下一代大資料系統和4S標準

大資料行業發展到今天,它創造的價值和帶來的社會效應,大家已經看得很明白,同時很多問題和不足也暴露出來,特別是hadoop能夠提供的資料處理能力,現在已經挖掘到極限,但是現在各行業對資料的儲存和計算需求,似乎卻沒有停止的跡象。在最近的一次大資料論壇上,大家開始討論下一代大資料系統和系統標準,藉此機會,...

四代大資料計算引擎

參考 這幾年大資料的飛速發展,出現了很多熱門的開源社群,其中著名的有 hadoop storm,以及後來的 spark,他們都有著各自專注的應用場景。spark 掀開了記憶體計算的先河,也以記憶體為賭注,贏得了記憶體計算的飛速發展。spark 的火熱或多或少的掩蓋了其他分布式計算的系統身影。就像 f...