2014年4月19日“中國Spark技術峰會”(Spark Summit China 2014)將在北京召開,國內外Apache Spark社區成員和企業用戶將首次齊聚北京。AMPLab、Databricks、Intel、淘寶、網易等公司的Spark貢獻者及一線開發者將分享他們在生產環境中的Spark項目經驗和最佳實踐方案。
在Spark技術峰會召開前夕,記者和本次Spark峰會的演講嘉賓連城做了一次簡單的溝通,他就Spark技術優勢、Spark技術發展、企業應用Spark遇到的困境等話題分享了自己的看法。
連城 @連城404
- 什么原因吸引你鉆研Spark技術?
最初接觸Spark純粹是出于個人興趣。我感興趣的技術方向主要有二,即分布式系統和函數式語言。Spark作為一套用Scala寫成的分布式內存計算系統,很好地結合了這兩個領域。Spark提供的Scala API本身也很類似于一套分布式、惰性求值的純函數式語言。然而后來,越是深入探尋,便越是被Spark所吸引。Spark背后的不少想法在先前的系統中或多或少都有所體現,但Matei Zaharia博士眾人非常巧妙地集眾家之所長,融會貫通,克服了眾多舊有特化系統中的各種缺陷,濃縮提煉出了RDD(Resilient Distributed Dataset,彈性分布式數據集)這一高度通用的抽象結構。圍繞RDD這一核心,AMPLab團隊以扎實的工程功底和開放的心態,打造了全新的Spark生態圈,又以Spark為核心提出了極富創意的BDAS(Berkeley Data Analytics Stack,伯克利數據分析棧)。在研究成果的工業轉化方面,AMPLab團隊可謂典范:他們不僅是富有遠見的科學家,也是功力深厚的工程師,同時還扮演著開源社區中循循善誘的良師益友角色。正是基于以上這些原因,去年得知Spark核心團隊創辦Databricks后我便力求加盟,并最終幸運地得償所愿。能與這樣一群杰出的同事工作,本身就是一件令人非常興奮的事。
- 對于解決哪些問題Spark獨具優勢?
隨著大數據相關技術和產業的逐漸成熟,單個組織內往往需要同時進行多種類型的大數據分析作業。如:傳統Hadoop MapReduce最為擅長的批量計算、各種機器學習算法為代表的迭代型計算、流式計算、社交網絡中常用的圖計算、SQL關系查詢、交互式即席查詢等等。在Spark出現之前,要在一個組織內同時完成數種大數據分析任務,就不得不與多套特化系統打交道,一方面引入了不容小覷的運維復雜性,另一方面還免不了要在多個系統間頻繁進行代價高昂的數據轉儲(ETL)。AMPLab在介紹以Spark為核心的BDAS時常說的一句話是:one stack to rule them all,也就是說可以在一套軟件棧內完成前述各種大數據分析任務。相對于MapReduce上的批量計算、迭代型計算以及基于Hive的SQL查詢,Spark更是可以帶來一到兩個數量級的效率提升,在傳統MapReduce近乎不可能的交互式即席查詢也因而得以實現。這種“全能”特質,很大程度上源自RDD這一合理抽象和AMPLab/Databricks團隊扎實的工程功底。當然,Spark并不真的是全能的。RDD模型適合的是粗粒度的數據并行計算,而不適合細粒度的、需要異步更新的計算;對于這些計算需求,如果要追求極致的性能,還是需要求助于特化系統(如圖計算領域的GraphLab等)。但就現有成果來看,Spark的覆蓋面已然相當廣泛。簡而言之,Spark的獨門秘籍便是打造結構上一體化、功能上多元化的高效數據流水線。
- 目前企業應用Spark最大的困難是什么?
據我有限的了解,最大的困難還是人才方面的短缺。無論Spark還是Spark所使用的Scala,都還是相當年輕的事物。雖然它們各自都已經吸引了大批富有遠見和才華的開發者,但不得不說距離大規模普及還有相當長的一段路要走。另一個相關問題是Spark方面的參考材料還不多。目前社區內開發者們主要的學習方式還限于閱讀有限的官方文檔、源碼、AMPLab發表的論文,以及社區討論。所幸Fast Data Processing with Spark一書的中文版已經在翻譯中;由O'Reilly出品,來自Spark核心團隊的Learning Spark今年也有望面世。
- 根據您的了解,目前Spark發展的情況如何?
評價一個開源項目發展情況的重要指標之一就是該項目的貢獻者人數。對于這一點,在去年12月份的Spark Summit上,Spark的創始人Matei Zaharia博士十分自豪:“過去六個月內,Spark的活躍開發者人數超過了Hadoop MapReduce!”那時Spark貢獻者總人數是103人;而今四個月過去了,根據GitHub最新的統計,這一數字已然增長到了153人。特別值得一提的是,在最近發布的幾個版本中,華人開發者的人數飛速上升。Spark項目主站中Powered by Spark頁面中不斷增長的公司列表也是Spark在工業界穩步推進的有力證明。這份列表中不乏阿里巴巴、百度、點評、搜狐等中國企業的身影。如前所述,Spark的推廣還任重道遠,但其良好的向下兼容性、相對傳統方法的顯著優勢,以及來自社區的巨大熱情令我非常看好Spark的發展前景。
- 請談談你在這次大會上即將分享的話題。
本次大會上,我將為大家介紹新近加入Spark主線版本的alpha組件Catalyst/Spark SQL。在去年的Spark Summit上,Catalyst的主要設計者Michael Armbrust曾將Catalyst描繪為一套簡潔強大的SQL查詢計劃優化框架。隨著時間的推移,Catalyst已經逐漸進化為一整套完整的SQL on Spark解決方案并更名為Spark SQL。后續Catalyst/Spark SQL有望成為Shark的新引擎。Catalyst/Spark SQL的特點主要包括: 向下兼容HiveQL,可以操縱現存的各種Hive數據格式。 支持針對原生RDD對象的關系查詢;用戶既可以選擇HiveQL,也可以選擇Catalyst提供的精簡SQL子集或Scala DSL,從而完全擺脫對Hive的依賴。 在執行效率方面,Catalyst內建的查詢優化引擎可以對用戶編寫的HQL/SQL查詢進行有效優化,從而有效減輕用戶在Spark應用性能調優方面的負擔。 借力于Scala 2.10新近的反射能力,Catalyst實現了一套可擴展的代碼生成框架,可以針對特定邏輯直接生成字節碼,進一步提升性能。
- 哪些聽眾最應該了解這些話題,這個話題可以幫助聽眾解決哪些問題?
所有正在應用Hive、Shark等SQL data warehouse的聽眾都應該會對這個話題感興趣。相對于Hive,和Shark一樣,Catalyst可以提供一到兩個數量級的性能提升,實現真正的交互式大數據即席查詢。相對于Shark,Catalyst提供了針對原生RDD對象的關系查詢支持,并且在保留Hive兼容性的前提下進一步解耦了對Hive的依賴,精簡了代碼庫;全新的執行計劃優化和代碼生成框架簡潔清爽,為更進一步的性能提升打開了更大的想像空間。
更多精彩盡在2014年4月19日中國Spark技術峰會,3月31日前購票訂票可享受最低票價優惠。
往期采訪內容:
尹緒森:打開圈子擁抱變化,談Spark玩家的自我修養
網易王健宗:革命Hadoop,Spark帶來百億市場價值!