Spark單機部署優化

2021-10-03 13:00:11 字數 2020 閱讀 5044

在單機部署過程中,遇到的效能問題無非就是機器配置低,配置master模式提交執行也會慢,於是使用中有一些調優思路。

專案環境

技術棧版本號

scala

2.10

spark

2.2.0

hadoop

2.7.x

hive

0.12.0

springboot

1.4.2

jdk1.8.x

專案內容介紹

本專案使用spark graphx元件進行關係圖譜的計算,其中涉及到大量的記憶體運算,但機器資源有限,無非在集群環境計算,只能在虛擬機器中運算,最終選擇的使用單機部署方式使用。後期為了增加拓展性,可以適配微服務等,專案成品是乙個jar包形式。

機器介紹

硬體名稱

規格cpu

16c記憶體

64g硬碟

300g

scala基本**

val mastername =

"local[16]"

val sc:sparkcontext =

newsparkcontext

(new

sparkconf()

.setmaster

(mastername)

.)

引數

解釋master

填寫使用的模式,本地模式就寫local,括號內是指起幾個執行緒,通常與cpu數量相同即可

給起的服務起名字,能夠標示即可

核數調優

local中數字寫大,最大為cpu的核數,多了無意義,沒有效果提公升。

並行數調優

需要新增引數spark.default.parallelism,具體**如下

val mastername =

"local[16]"

val parallelism =

10val sc:sparkcontext =

newsparkcontext

(new

sparkconf()

.setmaster

(mastername)..

set(

"spark.default.parallelism"

, parallelism)

)

這個引數預設是與cpu核數相同,執行效率一般,可根據經驗進行調整,若無經驗,就按照有規律遞減/遞增的方式進行測試。

parallelism並行數設定

效果(毫秒)

10081577

5047039

1638003

1536217

1031701

829741

526551

本效果僅供參考

本人固定使用**

val mastername =

"local[16]"

val parallelism =

10val port =

2333

val localdir =

"./data"

val sc:sparkcontext =

newsparkcontext

(new

sparkconf()

.setmaster

(mastername)..

set(

"spark.default.parallelism"

, parallelism)

.set

("spark.driver.allowmultiplecontexts"

,"true").

set(

"spark.ui.port"

, port)

.set

("spark.local.dir"

, localdir)

)sc.

setloglevel

("warn"

)

Spark單機部署

spark版本選型 spark解壓安裝 上傳spark安裝包 cd home spark soft spark安裝包存在路徑 tar zxvf spark 2.1.2 bin hadoop2.7.tgz 解壓 ln s spark 2.1.2 bin hadoop2.7 spark 方便起見可以建立...

單機部署ElasticSearch

單機部署elasticsearch 2.解壓.tar安裝包 tar zcvf elasticsearch 6.3.0.tar.gz3.進入到 elasticsearch 6.3.0 檔案中 cd elasticsearch 6.3.04.啟動elasticsearch bin elasticsear...

kafka單機部署

2 解壓 tar zxvf kafka 2.12 0.11.0.3.tgz c local sda kafka3 使用kafka自帶的zookeeper,修改zookeeper.properties cd local sda kafka kafka 2.12 0.11.0.3 進入kafka主目錄 ...