提高大數據計算作業執行性能的一點建議

這年代,做數據的,沒人不知道 Spark 是什麼吧。作爲最火的大數據計算引擎,現在基本上是各互聯網大廠的標配了。

 

比如,字節跳動基於 Spark 構建的數據倉庫,服務了幾乎所有的產品線,包括抖音、今日頭條、西瓜視頻等。再比如,百度基於 Spark 推出 BigSQL,爲海量用戶提供次秒級的即席查詢。可以說,在海量數據處理上,Spark 的角色至關重要。

 

想到我剛剛接觸 Spark 那會兒,真心佩服它的開發效率,是真高啊!MapReduce 上千行代碼才能實現的業務功能,Spark 幾十行代碼就搞定了。

 

現在就更牛了,去年 6 月,Spark 直接從 2.4 直接升級到了3.0,最大的亮點就在於性能優化,它添加了諸如自適應查詢執行(AQE)、動態分區剪裁(DPP)、擴展的 Join Hints 等新特性。這估計會讓 Spark 在未來 5 到 10 年繼續雄霸大數據生態圈。

 

就目前來說,Spark 有海量批處理、實時流計算、圖計算、數據分析和機器學習這 5 大應用場景,不論你打算朝哪個方向深入,「性能調優」都是必須要跨越的一步。

 

原因很簡單,對於這 5 大場景來說,提高執行性能是剛需。想要精通 Spark,就得拿下“性能調優”這把萬能鑰匙。

 

 

 

很多開發者都意識到這一點,但難就難在,市面上關於 Spark 性能調優的資料,大都不繫統,只是在講一些常規的調優技巧和方法。而對於一些大神分享的調優手段,只是“照葫蘆畫瓢”做出來的東西,也總是達不到預期的效果,比如:

 

  • 明明都是內存計算,爲什麼我用了 RDD/DataFrame Cache,性能反而更差了?

  • 網上吹得神乎其神的調優手段,爲啥到了我這就不好使呢?

  • 並行度設置得也不低,爲啥我的 CPU 利用率還是上不去?

  • 節點內存幾乎全都劃給 Spark 用了,爲啥我的應用還是 OOM?

 

這些問題看似簡單,但真不是一兩句話就能說得清的。這需要我們深入Spark的核心原理,不斷去嘗試每一個API、算子,設置不同的配置參數,最終找出最佳的排列組合。

 

說到底,還是需要更多的學習案例與實操。我最近關注到 FreeWheel 機器學習團隊負責人吳磊,總結了出一套關於「性能調優的方法論」。挺戳中我的,分享給大家👇

 

按圖索驥開展性能調優

 

這張圖來自吳磊的極客時間專欄《Spark 性能調優實戰》,剛剛上線,不僅深入淺出的講了 Spark 核心原理,還全面解析 Spark SQL 性能調優,總結了一份應用開發、配置項設置實操指南,真心實用。

 

最吸引我的是實操,專欄以「北京市汽油車搖號」數據爲例,手把手帶你實現一個分佈式應用。一句話總結,就是能讓你一站式加速 Spark 作業執行性能,是不是很牛。

 

△ 掃碼免費試讀或訂閱

早鳥 + 口令「Spark6666

立省 ¥30,到手僅 ¥69

 

作者是吳磊,現任 Comcast Freewheel 機器學習團隊負責人,主要負責計算廣告業務中機器學習應用的實踐、落地與推廣。之前也任職於 IBM、聯想研究院、新浪微博,可以說具備豐富的數據庫、數據倉庫、大數據開發與調優經驗了。

 

早之前聽說過他,研究 Spark 是下了功夫的,而且做事兒有股“較真兒”的風格,看他上面總結的方法論圖就知道,是個嚴謹、認真的人,跟着這樣有實踐、有理論,懂實現細節的大佬學習,錯不了。

 

Spark 怎麼能“學得快,還學得好”?

 

跟着大佬,能又快又好的學,那就是省“時間”,找到捷徑、賺到了,目前專欄 3 個部分的內容,乾貨不少:

 

  • 原理篇:聚焦 Spark 底層原理,打通性能調優的任督二脈

 

Spark 的原理非常多,但專欄聚焦於那些與性能調優息息相關的核心概念,包括RDD、DAG、調度系統、存儲系統和內存管理。而且用的是最貼切的故事和類比、最少的篇幅,讓你在最短的時間內掌握其核心原理,爲後續的性能調優打下堅實的基礎。

 

  • 性能篇:實際案例驅動,多角度解讀,全方位解析性能調優技巧


一部分是講解性能調優的通用技巧,包括應用開發的基本原則、配置項的設置、 Shuffle 的優化、資源利用率的提升。另一部分會專注於數據分析領域,藉助 Spark內置優化如 Tungsten、AQE 和典型場景如數據關聯,和你聊聊 Spark SQL 中的調優方法和技巧。


  • 實戰篇:打造屬於自己的分佈式應用


專欄以 2011 - 2019 的《北京市汽油車搖號》數據爲例,手把手教你打造一個分佈式應用,帶你從不同角度洞察汽油車搖號的趨勢和走向。我相信,通過這個實戰案例,你對性能調優技巧和思路的把控肯定會有一個“質的飛躍”。


除此之外,聽說吳磊還會不定期地針對熱點話題加餐,比如和 Flink、Presto 相比,Spark 有哪些優勢,再比如 Spark 的一些新特性,以及業界對於 Spark 的新探索。這也能幫助我們更好地面對變化,把握先機。

 

下面是專欄的目錄,看着感覺很不錯,理論和實踐相結合。


在現在大數據技術領域,基本上是 Spark 形成了一家獨大的局面,所以該抓住機會學習的,還得學。

 

再提醒下,原價 ¥99

結算時用優惠口令「Spark6666

立省 ¥30,到手僅 ¥69

 

走心的努力,纔算真的努力。2 杯奶茶的價格,拿下這套 Spark 性能調優方法論,值了👇

本文分享自微信公衆號 - 大數據技術與架構(import_bigdata)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章