業界排名Top6的大數據框架


原做:Tynejpython

翻譯:way算法

市場上有許多可用的框架。其中一些相對更受歡迎,例如Spark,Hadoop,Hive和Storm,普雷斯托(Presto)在效用指數上得分很高,而Flink具備巨大的潛力。另外還有一些須要說起的其餘內容,例如Samza,Impala,Apache Pig等大數據組件。在這裏,咱們將討論其中的一些安全


一:Apache Hadoop微信

Hadoop是基於Java的平臺。這是一個開源框架,可跨集羣排列的一組硬件機器提供批處理數據處理和數據存儲服務。Hadoop不只適用於可靠、可擴展和分佈式的計算,同時也能夠用做通用文件存儲,它能夠存儲和處理PB級別的信息。Hadoop由三個主要組件組成:併發

  1. HDFS文件系統-負責Hadoop集羣中的數據存儲;app

  2. MapReduce系統-用於處理集羣中的大量數據;框架

  3. YARN-它是處理資源管理的核心。機器學習

優勢分佈式

它提供了經濟高效的解決方案,高吞吐量,多語言支持以及與大數據服務中大多數新興技術的兼容性。還經過其出色的故障處理機制支持高可伸縮性,容錯能力,更適合研發,高可用性。工具

缺點

它包含安全漏洞的漏洞,不執行內存中的計算,所以會遭受處理開銷,不適用於流處理和實時處理,這是處理大量小文件的問題。

像Amazon,Adobe,AOL,阿里巴巴,EBay和Facebook這樣的組織也使用Hadoop。


二: Apache Spark

Spark框架由加利福尼亞大學伯克利分校成立。它是具備改進的數據流處理的批處理框架。藉助完整的內存計算以及處理優化,它保證了極其快速的集羣計算系統。

Spark框架由五層組成。

  • HDFS和HBASE:它們構成了數據存儲系統的第一層。 

  • YARN和Mesos:它們造成資源管理層。 

  • 核心引擎:這造成了第三層。

  • 庫:構成第四層,其中包含用於流查詢處理時的SQL查詢的Spark SQL,用於處理圖形數據的GraphX和Spark R實用程序以及用於機器學習算法的MLlib。

  • 第五層包含一個應用程序接口,例如Java、Scala,固然還有python。

Spark能夠做爲獨立的集羣與功能強大的存儲層一塊兒使用,也能夠與Hadoop進行一致的集成。它也支持一些流行的語言,例如Python,R,Java和Scala。

優勢

  1. 速度快

  2. 使用方便

  3. 進階分析

  4. 天然動態

  5. 多種語言

  6. Apache Spark功能強大

  7. 增長對大數據的訪問

  8. 對Spark開發人員的需求

  9. 開源社區活躍

缺點

Spark帶來了一些弊端,例如設置和實現的複雜性,語言支持限制,而不是真正的流引擎。


三:Storm

Apache Storm是另外一個引人注目的解決方案,專一於處理巨大的實時數據流。Storm的主要亮點是可伸縮性和停機後的迅速恢復能力。您能夠在Java,Python,Ruby和Fancy的幫助下使用此解決方案。Storm包含一些使其在本質上與模擬產品不一樣的組件。第一個是Tuple,它是支持序列化的關鍵數據表示元素。而後是Stream,它在Tuple中合併了命名字段的方案。Spout從外部源獲取數據,從它們中造成元組,而後將它們發送到Stream。另外還有Bolt(數據處理器)和Topology(拓撲),這是一整套元素及其相關描述。將全部這些元素組合在一塊兒,能夠幫助工程師監督大量的非結構化數據流。

談到性能,Storm提供了比Flink和Spark更好的延遲。儘管如此,它的吞吐量卻更糟。最近,Twitter移至另外一個框架Heron。Yelp,Yahoo 、阿里巴巴等大型組織還沒有利用Storm。到2020年,它將擁有龐大的客戶羣和支持。


四: Apache Flink

Apache Flink是一個開源框架,一樣適用於批處理和流數據處理。它最適合於集羣環境。該框架基於轉換–流概念。它也是大數據的4G。它比Hadoop中的計算框架MapReduce快100倍。

Flink框架由多層組成

  • 部署層

  • 運行層

  • 庫層

優勢

低延遲,高吞吐量,容錯,逐項輸入,批處理輕鬆以及流數據處理,與Hadoop的兼容性。

缺點

不多有可伸縮性問題。


五: Presto

它是最適合較小數據集的開源分佈式SQL工具。Presto發動機配備了協調員以及各類工人。當客戶提交查詢時,將對這些查詢進行解析,分析,計劃執行並分配給協調員在工做人員之間進行處理。

優勢

  1. 即便併發查詢工做量增長,查詢降級最少。

  2. 它的查詢執行速度比Hive快三倍。

  3. 易於添加圖像和嵌入連接。 

  4. 高度用戶友好。 

缺點

  1. 可靠性問題


六:Samza

Apache Samza是有狀態的流,準備與Kafka共同開發的大數據系統。Kafka提供數據服務,緩衝和容錯能力。二者結合起來被提議用於須要快速單級處理的地方。使用Kafka,能夠以低延遲使用它。Samza還在處理過程當中保存了局部狀態,從而提供了更多的容錯能力。它是爲Kappa體系結構設計的,但能夠在其餘體系結構中使用。Samza使用YARN來安排資源。所以,它須要一個Hadoop集羣才能工做,這意味着您能夠依賴YARN提供的亮點。這個大數據處理框架是爲Linkedin開發的,也被eBay和TripAdvisor使用,以進行欺詐發現。Kafka利用了至關一部分代碼來建立競爭的數據處理框架Kafka流。


原文:https://www.reddit.com/r/bigdata/comments/dtbtui/top_6_big_data_frameworks/



往期推薦

► 大數據(生於2006,卒於2019)已死!

► 一場價值百萬的談話:請中止學習框架

► 終於有人把雲計算、大數據和人工智能講明白了!

► 這篇文章有點雜亂,可是看完秒懂大數據用戶畫像!


你點的每一個在看 我都認真當成了喜歡 

本文分享自微信公衆號 - 數據指南(BigDataDT)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索