? num-executors:該作業(yè)總共需要多少executor進(jìn)程執(zhí)行
建議:每個作業(yè)運(yùn)行一般設(shè)置5-~100個左右較合適
? executor-memory:設(shè)置每個executor進(jìn)程的內(nèi)存, num-executors* executor-memory代表作業(yè)申請的總內(nèi)存量(盡量不要超過最大總內(nèi)存的1/3~1/2)
建議:設(shè)置4G~8G較合適
? executor-cores: 每個executor進(jìn)程的CPU Core數(shù)量,該參數(shù)決定每個executor進(jìn)程并行執(zhí)行task線程的能力,num-executors * executor-cores代表作業(yè)申請總CPU core數(shù)(不要超過總CPU Core的1/3~1/2 )
建議:設(shè)置2~4個較合適
? driver-memory: 設(shè)置Driver進(jìn)程的內(nèi)存
建議:通常不用設(shè)置,一般1G就夠了,若出現(xiàn)使用collect算子將RDD數(shù)據(jù)全部拉取到Driver上處理,就必須確保該值足夠大,否則OOM內(nèi)存溢出
? spark.default.parallelism: 每個stage的默認(rèn)task數(shù)量
建議:設(shè)置500~1000較合適,默認(rèn)一個HDFS的block對應(yīng)一個task,Spark默認(rèn)值偏少,這樣導(dǎo)致不能充分利用資源
? spark.storage.memoryFraction: 設(shè)置RDD持久化數(shù)據(jù)在executor內(nèi)存中能占的比例,默認(rèn)0.6,即默認(rèn)executor 60%的內(nèi)存可以保存持久化RDD數(shù)據(jù)
建議:若有較多的持久化操作,可以設(shè)置高些,超出內(nèi)存的會頻繁gc導(dǎo)致運(yùn)行緩慢
? spark.shuffle.memoryFraction: 聚合操作占executor內(nèi)存的比例,默認(rèn)0.2
建議:若持久化操作較少,但shuffle較多時,可以降低持久化內(nèi)存占比,提高shuffle操作內(nèi)存占比








暫無數(shù)據(jù)