在單機部署過程中,遇到的效能問題無非就是機器配置低,配置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主目錄 ...