[即時處理的大數據系統 源自Berkely的Spark系統]
之前有「i聯網」的社員問我,希望能有做到即時處理的大數據系統,我回答我不知道有這種東西。後來我深入研究之後,我才發現,最初由加州大學柏克萊分校AMPLab開發的Spark系統,就是這樣的系統。
[Hadoop V.S. Spark 速度上的差別十分顯著]
2003年起Google釋出的論文,在2006年起由Yahoo支持,以開放原始碼的方式開發與釋出的Hadoop系統,是除了Google外第一個分散式電腦的大數據系統,其他各家最初的大數據系統,都是以這個系統為範本修改而成。這個系統很穩定,備援也考慮得很周全,除了當地其他電腦備份之外,也考慮到遠端備份,所有運算中介資料都會寫在硬碟上,必須以事後批量處理的方式進行,可以做好的大數據的分散式系統模型建模與預測,但可惜的是,沒辦法即時運算。
加州大學柏克萊分校AMPLab2009年開發了Spark系統,2013年將此系統捐給阿帕契基金會,跟Hadoop系統在效能上有非常大的差別:快上一百倍以上。因為Spark是將運算都在寫在記憶體中,少了寫在硬碟上的運算。也因此較Hadoop適合做即時運算,而且Spark也有SparkSQL這樣的工具可以使用SQL來做查詢,十分方便。
Spark本身需另外搭配叢集管理系統,也因此可以跟Hadoop系統共存:利用Hadoop的YARN。其分散式檔案系統也支援HDFS(Hadoop的分散式的檔案系統)。如果原來的系統是自己架的Hadoop系統,就可以直接安裝這兩種模式並存:需要即時處理的用Spark,不需要即時處理的用Hadoop。當你使用的系統是建在跟微軟或亞馬遜租的機器時,它也支援OpenStack swift跟Amazon S3。
Hadoop V.S. Spark 比較表 裴有恆製表
[什麼系統用得到 Spark這樣的大數據]
Spark這樣的系統,強調它在分散性系統上的即時處理,對物聯網跟互聯網而言,即時電商資料(如天貓1111時的電商數據分析)、社群資料(如奧運時社群人們喜好及比賽的即時社群數據分析)、交通資料(如高速公路即時路況)…等等需要做大數據即時處理的資料系統模型。Spark本身還提供MLlib(機器學習函式庫,比Hadoop上的Mahout快上十倍),非常好用,可以很快地處理大數據的分析建模。
因為這樣的架構用到了很多的機器學習的方法,不過MLlib本身並不含深度學習的類神經網路,這應該是因為類神經網路的層數跟參數都要另外調校才能達成最大效用。
[結論]
1.Spark是運算速度很快的大數據系統。
2.要即時運算獲得大數據結果,Spark是較好的選擇。
3.Spark可以直接在Hadoop的系統中與Hadoop共存。