Apache Spark 1.2.0發布:引入基于Netty的實現,支持高可用,并提供機器學習API

jopen 9年前發布 | 22K 次閱讀 Apache Spark

Apache Spark 1.2.0已經發布,Spark核心引擎在性能和可用性方面都有很大改進。這是來自60多家研究機構和公司的172位貢獻者的成果,包括了1000多個補丁。

Spark 1.2.0與之前的1.1和1.0版本完全二進制兼容。該版本引入了一個基于Netty的實現,此舉帶來了很大的效率提升。Spark流支持Python,并通過預寫式日志(Write Ahead Logs,WALs)支持高可用。此外還提供了一組稱作spark.ml的機器學習API。

Spark SQL是一個比較新的項目,改進了對外部數據源的支持

Patrick Wendell是Spark早期版本的發布經理,現在是Spark貢獻者和PMC成員,目前就職于Databricks。InfoQ對他進行了采訪。

InfoQ:先談談重要的。對熟悉Map/Reduce的開發者而言,Spark看上去在引導一個新的范型,是不是這樣呢?精通Map/Reduce的開發者是否應該關注Apache Spark

Spark最初創建的目標就是改進Map/Reduce模型,所以現在的Map/Reduce開發者絕對應該試試 Spark!與Map/Reduce相比,除了豐富的內置類庫以及社區提供的類庫,Spark還提供了層次更高、表達性更好的API。做個類比,如果說 Map/Reduce像匯編語言,也就是底層的、命令式的語言,那Spark更像提供了類庫和包的現代編程語言。Spark還提供了很大的性能改進。

InfoQ:可以像運行其他程序那樣在YARN上運行Map/Reduce程序。Apache SparkYARN之間有什么關系嗎?

Spark可以在很多不同的環境中運行,從和已部署的Hadoop共存,到運行在Mesos集群中,還可以運行在像 Databricks Cloud這樣的托管服務中。在Hadoop環境中,YARN是集群管理器,幫助啟動和調度運行Spark應用的分布式組件。YARN可以將Spark和 MapReduce負載在同樣的集群硬件上多路復用。

InfoQ:要成為Spark用戶,需要熟悉Scala嗎?

與Scala用戶相比,Java和Python用戶也很多。所以Scala相關的知識并不是必需的。Spark的可編程 的Shell提供了Python和Scala版本(因為Java沒有交互式的Shell,所有沒有Java版本)。Spark的SQL特性支持這幾種語 言。當然要嘗試新東西的話,Scala API總是可用的。

InfoQSpark SQL是最近加進來的。能夠使用JDBC/ODBC API訪問Spark,是不是使Spark對開發者更友好了?

能夠在JDBC/ODBC 上暴露出Spark數據集,這是我們去年提供的最受歡迎的特性之一。這些接口支持使用傳統的BI和可視化工具查詢Spark數據,還支持與第三方應用集 成。利用Spark,不管我們的數據用的是什么格式(JSON、Parquet或某種數據庫),都可以在一個程序中實現對數據的ETL(Extract、 Transform和Load)操作,以及執行變換并暴露給查詢操作。這是Spark中最強大概念之一,過去需要很多單獨的工具,現在都統一了。

InfoQ:磁盤存儲沒有限制,但內存是有限的。有別于Apache HadoopApache Spark是不是有數據大小的限制?哪類應用能從Apache Spark受益最多呢?

盡管現代的集群中可用內存的量一直在激增,但是總有些情況,數據是無法放到內存里的。在Spark的所有現代版本中,大 部分超出可用內存的操作都會擴展到磁盤上,這意味著用戶不需要擔心內存限制。舉個例子,在數據集的量幾倍于集群的可用內存量的情況下,Spark取得了 Jim Gray排序基準測試的勝利,而且就是在這種情況下,Spark的效率還比其他廣泛應用的系統高好多倍。

InfoQ:我們再來談談性能。在最初由Jim Gray創建的排序基準測試中,Apache Spark成了贏家,讓人印象非常深刻。很多開發者都會對基準測試的結果表示懷疑,你能談一下這些結果是否中肯嗎?

之所以選擇Jim Gray基準測試,是因為它是由第三方委員會維護的。這就確保它是獨立驗證的,而且是基于一組定義好的業界規則。對基準測試持懷疑態度的開發者都知道,自 己報告的、未經驗證的基準測試一般多是營銷材料。而開源之美就在于,用戶可以自行嘗試,幾乎不需要什么成本。我一直鼓勵用戶選擇Databricks Cloud,或者是下載Spark,并用自己的數據集來評估,而不是把太多精力放到基準測試上。

對于用戶而言,整體考慮性能也很重要。如果數據在ETL流水線中要花6個小時轉成恰當的格式,或者需要3個月的時間實現 模式的變更,那查詢加快是不是勝利呢?如果需要把數據轉到另一個系統中來執行機器學習,10% 的性能改進是不是值得?數據通常很散亂、復雜,而且端到端的流水線會涉及不同的計算模型,比如查詢、機器學習和ETL。Spark的目標是使得在真正的流 水線中處理復雜數據變得非常簡單!

有關Apache Spark 1.2.0的特性列表的更詳細解釋,可以參見Databricks公司的博客。讀者可以從Apache Spark的下載頁面下載Spark最新版本。

 

查看英文原文:Apache Spark 1.2.0 Supports Netty-based Implementation, High Availability and Machine Learning APIs

來自:http://www.infoq.com/cn/news/2015/01/Apache-Spark-1.2.0-Released

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!