Spark常规性能调优一:最优资源配置
生活随笔
收集整理的這篇文章主要介紹了
Spark常规性能调优一:最优资源配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Spark 性能調(diào)優(yōu)的第一步,就是為任務(wù)分配更多的資源,在一定范圍內(nèi),增加資源的分配與性能的提升是成正比的,實(shí)現(xiàn)了最優(yōu)的資源配置后,在此基礎(chǔ)上再考慮進(jìn)行后面論述的性能調(diào)優(yōu)策略。
資源的分配在使用腳本提交 Spark 任務(wù)時(shí)進(jìn)行指定,標(biāo)準(zhǔn)的 Spark 任務(wù)提交腳本如下所示:
bin/spark-submit \ --class com.zxl.spark.Analysis \ --master yarn --deploy-mode cluster --num-executors 80 \ --driver-memory 6g \ --executor-memory 6g \ --executor-cores 3 \ /usr/opt/modules/spark/jar/spark.jar \可以進(jìn)行分配的資源如表所示:
調(diào)節(jié)原則:盡量將任務(wù)分配的資源調(diào)節(jié)到可以使用的資源的最大限度。對(duì)于具體資源的分配,我們分別討論 Spark 的兩種 Cluster 運(yùn)行模式:
- 第一種是 Spark Standalone 模式,你在提交任務(wù)前,一定知道或者可以從運(yùn)維部門獲取
到你可以使用的資源情況,在編寫 submit 腳本的時(shí)候,就根據(jù)可用的資源情況進(jìn)行資
源的分配,比如說集群有 15 臺(tái)機(jī)器,每臺(tái)機(jī)器為 8G 內(nèi)存,2 個(gè) CPU core,那么就指
定 15 個(gè) Executor,每個(gè) Executor 分配 8G 內(nèi)存,2 個(gè) CPU core。 - 第二種是 Spark On Yarn 模式,由于 Yarn 使用資源隊(duì)列進(jìn)行資源的分配和調(diào)度,在編寫
submit 腳本的時(shí)候,就根據(jù) Spark 作業(yè)要提交到的資源隊(duì)列,進(jìn)行資源的分配,比如資
源隊(duì)列有 400G 內(nèi)存,100 個(gè) CPU core,那么指定 50 個(gè) Executor,每個(gè) Executor 分配
8G 內(nèi)存,2 個(gè) CPU core。
對(duì)各項(xiàng)資源進(jìn)行了調(diào)節(jié)后,得到的性能提升會(huì)有如下表現(xiàn):
補(bǔ)充:生產(chǎn)環(huán)境 Spark submit 腳本配置
參數(shù)配置參考值:
? --num-executors:50~100 ? --driver-memory:1G~5G ? --executor-memory:6G~10G ? --executor-cores:3 ? --master:實(shí)際生產(chǎn)環(huán)境一定使用 yarn總結(jié)
以上是生活随笔為你收集整理的Spark常规性能调优一:最优资源配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: goland配置GOPATH入口
- 下一篇: Spark常规性能调优二:RDD 优化