短短幾年時間,大數據這個詞便已家喻戶曉。但在大數據這個名詞被命名之前,人類對數據的搜集與分析已有著悠久的歷史。從人工統計分析到電腦/大型機再到今天的分布式計算平臺,數據處理速度飛速提高的背后則是整體架構的不斷演進。今天大數據架構最火熱的莫過于Hadoop,Spark和Storm這三種,而Spark和Storm這兩個后起之秀更是搶了不少Hadoop的風頭,也讓網上逐漸開始有一種聲音說Hadoop的日子已經快到頭了。但究竟這三者之間是什么關系,未來大數據架構究竟該走向何方呢?
分布式計算架構鼻祖Hadoop
所謂分布式計算過程就像螞蟻搬家一樣,將一個大型任務分割成很多部分,每一臺電腦相當于一個小螞蟻將其中一部分搬走。Hadoop作為分布式系統的基礎架構,其重要性不言而喻。Hadoop的數據處理工作在硬盤層面,借助HDFS(分布式文件系統),可以將架構下每一臺電腦中的硬盤資源聚集起來,不論是存儲計算還是調用都可以視為一塊硬盤使用,就像以前電腦中的C盤,D盤,之后使用集群管理和調度軟件YARN,相當于Windows,畢竟我們要進行編程首先需要一個操作系統,最后利用Map/Reduce計算框架相當于Virtual Studio,就可以在這上面進行計算編程。從而大幅降低了整體計算平臺的硬件投入成本。而這也就是最基礎的分布式計算架構。
流數據處理雙雄Spark和Storm
所謂流數據處理其實不難理解,比如看網上視頻,都是下載一段看一段,然后快結束的時候自動下載下一段。由于Hadoop的計算過程放在硬盤,受制于硬件條件限制,數據的吞吐和處理速度明顯不如使用內存來的快。于是Spark和Storm開始登上舞臺。Spark和Storm兩者最大的區別在于實時性:Spark是準實時,先收集一段時間的數據再進行統一處理,好比看網頁統計票數每隔幾秒刷新一次,而Storm則是完全實時,來一條數據就處理一條。當然Storm實時處理方式所帶來的缺點也是很明顯的,不論離線批處理,高延遲批處理還是交互式查詢都不如Spark框架。不同的機制決定了兩者架構適用的場景不同,比如炒股,股價的變化不是按秒計算的(Spark實時計算延遲度是秒級),在高頻交易中,高頻獲利與否往往就在1ms(0.001秒)之間,而這恰好就是Storm的實時計算延遲度。
混合架構,各顯神通
今天大數據的混合架構就像目前云計算市場中風頭最勁的混合云一樣,成為大多數公司的首選。每一種架構都有其自身的獨特優缺點,就像Hadoop,盡管數據處理的速度和難易度都遠比不過Spark和Storm。但是由于硬盤斷電后數據可以長期保存,因此在處理需要長期存儲的數據時還是需要借助Hadoop。不過Hadoop由于具有非常好的兼容性,因此非常容易的同Spark和Storm進行結合,從而滿足公司的不同需求。
縱觀技術的發展史,我們可以看到,每一項新技術的問世都有著之前技術的身影,伴隨著大數據的需求增長,不同的架依然會不斷進化,并改進自身的缺點,從而使得自身架構得到進一步的完善。就目前來看Hadoop,Spark和Storm目前遠談不到誰取代誰。