主流的三大分布式計算系統:Hadoop,Spark和Storm
由于Google沒有開源Google分布式計算模型的技術實現,所以其他互聯網公司只能根據Google三篇技術論文中的相關原理,搭建自己的分布式計算系統。
Yahoo的工程師Doug Cutting和Mike Cafarella在2005年合作開發了分布式計算系統Hadoop。后來,Hadoop被貢獻給了Apache基金會,成為了Apache基金會的開源項目。Doug Cutting也成為Apache基金會的主席,主持Hadoop的開發工作。
Hadoop采用MapReduce分布式計算框架,并根據GFS開發了HDFS分布式文件系統,根據BigTable開發了HBase數據存儲系統。盡管和Google內部使用的分布式計算系統原理相同,但是Hadoop在運算速度上依然達不到Google論文中的標準。
不過,Hadoop的開源特性使其成為分布式計算系統的事實上的國際標準。Yahoo,Facebook,Amazon以及國內的百度,阿里巴巴等眾多互聯網公司都以Hadoop為基礎搭建自己的分布式計算系統。
Spark也是Apache基金會的開源項目,它由加州大學伯克利分校的實驗室開發,是另外一種重要的分布式計算系統。它在Hadoop的基礎上進行了一些架構上的改良。Spark與Hadoop最大的不同點在于,Hadoop使用硬盤來存儲數據,而Spark使用內存來存儲數據,因此Spark可以提供超過Hadoop100倍的運算速度。但是,由于內存斷電后會丟失數據,Spark不能用于處理需要長期保存的數據。
Storm是Twitter主推的分布式計算系統,它由BackType團隊開發,是Apache基金會的孵化項目。它在Hadoop的基礎上提供了實時運算的特性,可以實時的處理大數據流。不同于Hadoop和Spark,Storm不進行數據的收集和存儲工作,它直接通過網絡實時的接受數據并且實時的處理數據,然后直接通過網絡實時的傳回結果。
Hadoop,Spark和Storm是目前最重要的三大分布式計算系統,Hadoop常用于離線的復雜的大數據處理,Spark常用于離線的快速的大數據處理,而Storm常用于在線的實時的大數據處理。