Hadoop、Spark、Flink概要

Hadoop,Spark、Flink是目前重要的三大分布式計算系統

· Hadoop用于離線復雜大數據處理

·Spark? ?用于離線快速的大數據處理

·Flink? ? ?用于在線實時的大數據處理。

一、為什么需要分布式計算系統?

當前大數據的數據量已達PB級別(1PB=1024TB),可以說是龐大無比。同時數據還有結構化(如數字、符號等)、非結構化(如文本、圖像、聲音、視頻等)之分,兼具大量、復雜的特點,使得如何又快又好又便宜得進行大數據的存儲,管理和處理變成一個亟待解決的問題。

于是分布式計算作為一種低成本的方案被提出來了。原理就是把一組計算機通過網絡相互連接組成分散系統,盡管分散系統內的單個計算機的計算能力不強,但是每個計算機只計算一部分數據,多臺計算機同時計算,最后將這些計算結果合并得到最終的結果。就整個分散系統而言,處理數據的速度遠高于單個計算機,且比集中式計算的大型機要劃算的多。

二、為什么是Hadoop,Spark、Flink?

為什么是他們,這要從谷歌的三篇論文說起...

2003年到2004年間,Google發表了三篇技術論文,提出了一套分布式計算理論,分別是:

·?分布式計算框架? ?MapReduce

·?分布式文件系統? ?GFS(Google File System)

·?數據存儲系統? ? ? ?BigTable

但由于Google沒有開源,所以其他互聯網公司根據Google三篇論文中提到的原理,對照MapReduce搭建了Hadoop ,對照GFS搭建了HDFS ,對照BigTable搭建了HBase.

即:

·?分布式計算框架? ?MapReduce? ? ? ? ? ? ? ? ? ? ? ? ? ? ?→? Hadoop?

·?分布式文件系統? ?GFS(Google File System)? ?→? HDFS?

·?數據存儲系統? ? ? ?BigTable? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? →? HBase


Spark分布式計算是在Hadoop分布式計算的基礎上進行的一些架構上的改良。目前也是Hadoop生態圈的成員之一。

Spark與Hadoop最大的不同點在于,Hadoop用硬盤存儲數據,而Spark用內存存儲數據,所以Spark能提供超過Hadoop100倍的運算速度。但因為內存斷電后會丟失數據,所以Spark不能用于處理需要長期保存的數據。

Flink是目前唯一同時支持高吞吐、低延遲、高性能的分布式流式數據處理框架。一般需要實時處理的場景都有他的身影,比如:實時智能推薦、實時復雜事件處理、實時欺詐檢測、實時數倉與ETL、實時報表分析等

三、Hadoop生態圈

廣義的Hadoop不再是單指一個分布式計算系統,而是一套生態系統。

那么,這套生態圈是如何產生的呢?

在有了Hadoop之類計算系統的基礎上,人們希望用更友好的語言來做計算,于是產生了Hive、Pig、SparkSQL等。計算問題解決了,還能在什么地方進一步優化呢?于是人們想到給不同的任務分配資源,于是就有了Yarn、Oozie等。漸漸地,隨著各種各樣的工具出現,就慢慢演變成一個包含了文件系統、計算框架、調度系統的Hadoop大數據生態圈。

早期Hadoop生態圈示例
后期Hadoop生態圈示例(其中紫色Storm現已流行用Flink代替)

附:一些其他的組件示意

Kafka:是一種高吞吐量的分布式發布訂閱消息系統,它可以處理各大網站或者App中用戶的動作流數據。用戶行為數據是后續進行業務分析和優化的重要數據資產,這些數據通常以處理日志和日志聚合的方式解決。

Kafka集群上的消息是有時效性的,可以對發布上來的消息設置一個過期時間,不管有沒有被消費,超過過期時間的消息都會被清空。例如,如果過期時間設置為一周,那么消息發布上來一周內,它們都是可以被消費的,如果過了過期時間,這條消息就會被丟棄以釋放更多空間。

Oozie:是一個工作流調度系統,統一管理工作流的調度順序、安排任務的執行時間等,用來管理Hadoop的任務。Oozie集成了Hadoop的MapReduce、Pig、Hive等協議以及Java、Shell腳本等任務,底層仍然是一個MapReduce程序。

ZooKeeper:是Hadoop和HBase的重要組件,是一個分布式開放的應用程序協調服務,主要為應用提供配置維護、域名服務、分布式同步、組服務等一致性服務。

YARN:Hadoop生態有很多工具,為了保證這些工具有序地運行在同一個集群上,需要有一個調度系統進行協調指揮,YARN就是基于此背景誕生的資源統一管理平臺。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。