Spark效能優化 開發調優篇

2021-08-29 22:52:24 字數 1176 閱讀 8042

1、前言

在大資料計算領域,spark已經成為了越來越流行、越來越受歡迎的計算平台之一。spark的功能涵蓋了大資料領域的離線批處理、sql類處理、流式/實時計算、機器學習、圖計算等各種不同型別的計算操作,應用範圍與前景非常廣泛。在美團•大眾點評,已經有很多同學在各種專案中嘗試使用spark。大多數同學(包括筆者在內),最初開始嘗試使用spark的原因很簡單,主要就是為了讓大資料計算作業的執行速度更快、效能更高。

然而,通過spark開發出高效能的大資料計算作業,並不是那麼簡單的。如果沒有對spark作業進行合理的調優,spark作業的執行速度可能會很慢,這樣就完全體現不出spark作為一種快速大資料計算引擎的優勢來。因此,想要用好spark,就必須對其進行合理的效能優化。

spark的效能調優實際上是由很多部分組成的,不是調節幾個引數就可以立竿見影提公升作業效能的。我們需要根據不同的業務場景以及資料情況,對spark作業進行綜合性的分析,然後進行多個方面的調節和優化,才能獲得最佳效能。

筆者根據之前的spark作業開發經驗以及實踐積累,總結出了一套spark作業的效能優化方案。整套方案主要分為開發調優、資源調優、資料傾斜調優、shuffle調優幾個部分。開發調優和資源調優是所有spark作業都需要注意和遵循的一些基本原則,是高效能spark作業的基礎;資料傾斜調優,主要講解了一套完整的用來解決spark作業資料傾斜的解決方案;shuffle調優,面向的是對spark的原理有較深層次掌握和研究的同學,主要講解了如何對spark作業的shuffle執行過程以及細節進行調優。

本文作為spark效能優化指南的基礎篇,主要講解開發調優以及資源調優。

2、開發調優

spark效能優化的第一步,就是要在開發spark作業的過程中注意和應用一些效能優化的基本原則。開發調優,就是要讓大家了解以下一些spark基本開發原則,包括:rdd lineage設計、運算元的合理使用、特殊操作的優化等。在開發過程中,時時刻刻都應該注意以上原則,並將這些原則根據具體的業務以及實際的應用場景,靈活地運用到自己的spark作業中。spark效能優化的第一步,就是要在開發spark作業的過程中注意和應用一些效能優化的基本原則。開發調優,就是要讓大家了解以下一些spark基本開發原則,包括:rdd lineage設計、運算元的合理使用、特殊操作的優化等。在開發過程中,時時刻刻都應該注意以上原則,並將這些原則根據具體的業務以及實際的應用場景,靈活地運用到自己的spark作業中。

Spark(十二) 效能調優篇

一段程式只能完成功能是沒有用的,只能能夠穩定 高效率地執行才是生成環境所需要的。本篇記錄了spark各個角度的調優技巧,以備不時之需。額。從最基本的開始講,可能一些剛接觸spark的人不是很清楚spark的一些引數變數到底要配置在 可以通過三種方式配置引數,任選其一皆可。程式中通過sparkconf...

spark 效能調優

核心調優引數如下 num executors executor memory executor cores driver memory spark.default.parallelizm spark.storage.memoryfraction spark.shuffle.memoryfractio...

Spark效能調優

日常工作使用spark處理業務問題中不可避免的都會碰到需要對spark的效能進行調優的情況,這裡就介紹一下對spark的效能調優。1.調節記憶體分配 因為在spark中堆記憶體被劃分為兩塊,一塊是給rdd的cache和persist操作rdd資料快取使用的,另一塊是給spark運算元函式使用的,函式...