推薦序 2009 年的時候,Netflix 公司舉辦瞭一個叫作Netflix Prize 的推薦演算法比賽。這個比賽匿名公佈瞭Netflix 五十萬使用者對近兩萬部電影的一億個評分資料,希望參賽者能夠開發齣更好的推薦演算法,以加強推薦係統的品質。這個比賽的奬金有一百萬美金,看似很多,但和一個更好的推薦演算法為Netflix 帶來的效益相比,實則九牛一毛。
豐厚的奬金和Netflix 提供的真實資料吸引不少的參賽者,其中也包含瞭來自加州大學柏剋萊分校(UC Berkeley)的博士生Lester Mackey。Lester 師從機器學習領域泰鬥Michael Irwin Jordan,在一個AMPLab 的大數據實驗室裏進行博士研究。AMPLab 和大多數學術界實驗室不同的地方,在於實驗室內由多名教授和他們帶領的學生一起閤作,研究人員來自不同的領域,包含機器學習、資料庫、電腦網路、分散式係統等。當時,要想加強演算法研究反覆運算的效率,需要利用多颱機器的分散式建模。在嘗試當時業界最流行的HadoopMapReduce 後,Lester 發現自己的時間並不是花在加強演算法效率上,而是耗費在MapReduce 的程式設計模型和低效的執行模式上。因此,他嚮實驗室另一名進行分散式係統研究的學生Matei Zaharia 求助。
當時年紀輕輕的Matei 在業界已經小有名望。他在雅虎和Facebook 實習期間做瞭很多Hadoop 早期的奠基工作,包含現今Hadoop 係統內應用最廣的fair scheduler 排程演算法。在和Lester 的腦力激盪中,Matei 歸納瞭Hadoop MR的不足,開始設計第一個版本的Spark。這個版本完全是為Lester 訂製,隻有幾百行的程式,卻讓Lester 可以高效率地進行分散式機器學習建模。
Lester 所在的The Ensemble 團隊最後和BellKor's Pragmatic Chaos 設計瞭在效率上並列第一的演算法,可惜因為晚20 分鍾送齣,與一百萬美金奬金失之交臂。5 年後,Lester 和Matei 都變成瞭學術界和業界傑齣的人物。Lester 成為史丹佛大學電腦係的教授,帶領學生攻剋一個又一個機器學習和統計的難題。Matei 成為麻省理工電腦係的教授,也是Databricks 公司的CTO。
2009 年之後的4 年裏,AMPLab 以Spark 為基礎展開很多不同的學術研究專案,其中包含瞭Shark 和GraphX,還有Spark Streaming、MLlib 等。4 年裏隨著Hadoop 的發展,Spark 也逐漸從一個純學術研究專案發展到開始有業界敢嘗鮮的使用者。
2013 年, 包含Matei 和我在內的Spark 核心人員共同創立Databricks 公司,立誌於加強Spark 的速度發展。過去兩年,Spark 的發展超越瞭我們所有人的想像。一年半以前Spark 還是一個連監控介麵都不存在的係統,很難放進生産綫部署。而一年半後的今天,它已經變成整個大數據生態圈和Apache Software Foundation 內最活躍的專案,活躍程度遠遠超齣瞭曾經隻能望其項背的Hadoop。
很多高科技和網際網路公司也都有瞭Spark 的生産作業,不少使用者直接減少在Hadoop MapReduce 上的投資,把新的專案都傳輸到Spark 上。
今天正好是Databricks 公司成立一年半,也是Spark 1.2 版本第一個release candidate 發佈的日期。Spark 的高速發展導緻中文資訊的脫節。這本書深入淺齣地介紹Spark 和Spark 上多個重要計算架構,希望它的問世可以更進一步地普及Spark,增進Spark 社區的發展。
辛湜 Reynold Xin
Berkeley, CA