Spark 1.2版本發布: MLlib支持工作流,SQL支持源數據篩選
12月18日,Spark宣布發布1.2版本,和以往發布的版本相比,1.2版本算得上是最大的一次改進,代碼來自172個開發者的多達一千次提交。更新內容涵蓋核心性能改進、MLlib的新API、Streaming的H/A模式、GraphX相關等等。更多細節可以在下載頁查看。在本次的發布中,主要改進包括下面幾個方面:
- Spark Core:對操作和性能方面做了改進,更新了兩個主要的子系統,來針對大規模shuffle的情況。第一個改進的是通信管理系統,升級使用了基于Netty的實現。第二個改進是shuffle的機制,升級使用了基于sort的實現。這兩個改進,都對大規模shuffle情況下的性能和穩定性做出了貢獻。除此之外,Spark還增加了一個彈性機制,用于增強那些長時間運行的ETL任務對集群的利用率。目前這種機制在YARN上已經支持了,后續版本發布的時候應該會覆蓋到其他管理平臺。最后,核心功能還添加了對Scala 2.11版本的支持。
- Spark Streaming:本次升級對Streaming部分來講包括了兩個主要特性,一個是Python的API,可 以調用DStream和輸出操作幾乎全部的功能。目前輸入來源支持文本文件和socket傳遞過來的文本。預計下一個版本發布的時候會添加Kafka和 Flume的輸入支持。另一個是WAL(write ahead log)機制下的全H/A模式,在此之前的版本,如果硬盤出了問題,一些尚在緩存區還沒有來得及被處理的數據會丟失,該改進可以有效地防止硬盤出問題時的 數據丟失問題。
- MLLib:最大的改進應該是發布了稱為spark.ml的機器學習工具包,支持了pipeline的 學習模式,即多個算法可以用不同參數以流水線的形式運行。在工業界的機器學習應用部署過程中,pipeline的工作模式是很常見的。新的ML工具包使用 Spark的SchemaRDD來表示機器學習的數據集合,提供了Spark SQL直接訪問的接口。此外,在機器學習的算法方面,增加了兩個基于樹的方法,隨機森林和梯度增強樹。
- Spark SQL:增加了對外部數據來源的支持。可以將外部數據來源作為臨時表掛在的文件系統之中,減少了全部加載數據過來 的種種糾結。為了做到這一點,Spark重寫了Parquet和JSON綁定。后續應該會有更多的對其他系統和數據格式的支持發布出來。此外,對于 Hive的支持也增加了定點數類型以及動態劃分的插入。
- GraphX:終于在這個版本里,Spark將GraphX從一個alpha初級開發版本更換到了穩定版本。這意味著目前用 GraphX開發的代碼將來移植到Spark新版本的時候,也不用做太多的代碼改動了。另外mapReduceTriplet接口被新的 aggreateMessages替換。
- 其他細節升級包括PySpark支持大數據集、一些UI上的改動以及可以讀取二進制圖像等內容。
12月16日的Spark的社區聚會上,作者Andrew和Aaron Davidson向前來的熱心開發者詳細講解了此次升級的情況(油Tube視頻)。另外,明年1月13日,Databricks的Patrick Wendell也會以Webcast的形式來分享Spark 1.2的更多細節。
來自:http://www.infoq.com/cn/news/2014/12/spark-1.2-release-mllib-sql
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!