Spark1.2新特性概述

jopen 10年前發布 | 8K 次閱讀 Spark

Spark 1.2.0于美國時間2014年12月18日發布,Spark 1.2.0兼容Spark 1.0.0和1.1.0。下面是Spark1.2 新特性概述:

1.2 居然真的在12月份發布了,我表示略感意外,我一直以為稍微跳個票要到明年一月初才能發的。這次更新有172個開發者參與,并且有1000多個 commits。這真是一個了不起的數字。本次版本給我們帶來了很多新特性,并且也有不少的性能優化點。我說幾個比較重要的吧。

Spark Core:

1、在傳大量數據的情況下,communication manager終于換成netty-based的實現了。之前的實現慢的要死是因為每次都要從磁盤讀到內核,再到用戶態,再回到內核態進入網卡,現在用 zerocopy來實現了。(想起來沒,Kafka也是用的這個)。

2、 shuffle manager換成sort based了,在shuffle數據比較大的時候,性能會有提升。不過也有不少人認為這個Hadoop的sort是一樣的,微博上也有人提出了這一點,本想回復解釋時,發現連城已經回復了。其實目前Spark的sort只是按照Partition key排序,Partition內部目前是不排序的,不過就算內部要排序,也是比較容易實現的。而Hadoop是按照每個Partition內的每個KV 排序的。

Spark Streaming :

終于“號稱”支持fully H/A模式了。以前當driver掛掉的時候,可能會丟失掉一小部分數據。現在加上一層WAL(write ahead log),好多地方都在用這玩意兒,還記得HBase的write path嗎?每次寫到memstore之前都會寫到一個叫HLog的地方,以防止數據丟失。回到這個問題,每次receiver收到數據后都會存在 hdfs上,這樣即使driver掛掉,當它重啟起來后,還是可以接著處理。當然WAL的實現也還是那樣子,到driver重啟后,要recover data,并且也要clean掉那些過時的數據。

當然,我還要特別提醒下 unreliable receivers和reliable receivers這兩個事情,有興趣的自己去看下什么個情況吧。

MLlib:

這里最重大的改變應該是Pipeline了,很多從事機器學習的朋友肯定會有興趣的。MLlib的老大祥瑞在北京已經談過這個了,這里不展開,需要指出的是,目前MLlib是用SchemaRDD來代表數據集的。也就是說,打通了Spark SQL與MLlib間的通道。話說在一起吃飯時我揪著祥瑞談了一些DataBricks Cloud的事情,沒問MLlib的事情,就知道他回來度個假,PR已經急劇增加了。

GraphX:

國內這塊用的比較多的要數淘寶明風他們團隊了。更多詳情,請咨詢淘寶技術部,哈哈,開玩笑的。這一版本最引人注意的應該是給出了stable api,這意味著你們不用擔心現在寫的代碼以后還要由于API的變化而改動了。插播廣告,下周杭州Spark Meetup,會有GraphX的一個精彩主題。

Spark SQL:

把這塊放最后的原因是,Spark SQL真是太火了,所以你們要提PR就趕快提,趕快響應,趕快merge,不然保不準在短時間內就給你來個conflict。這版本最重要的特性毫無疑問應該屬于external data source吧,套用連城PPT上的一句話,push predicates to datasource, 什么意思呢,譬如你要從HBase取數據后做一些篩選,一般我們需要把數據從HBase全取出來后在Spark引擎中篩選,現在呢,你可以把這個步驟推到 Data Source端,讓你在取數據的時候就可以篩選。當然,這塊肯定還會有很大的改動。

另一點必須要指出,我以前在很多場合都提醒大家,Spark SQL中緩存表一定要用cacheTable(“tableName”)這種形式,否則無法享受到列式存儲帶來的一系列好處,但是很多朋友仍然采用 rdd.cache這種原生的方式來緩存,社區也意識到這樣不行,所以現在無論是cacheTable還是直接cache,都是表達相同的語義,都能享受到列式存儲帶來的好處。

就寫到這里,本版本改動較大,希望大家盡早升級。

來自:http://mp.weixin.qq.com/s?__biz=MjM5NTc2MTg3Mw==&mid=201641685&idx=1&sn=1b75be3d774bb3f26b6714674dbefc64#rd

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