spark-submit 參數設置

在使用Spark時,根據集群資源情況和任務數據量等,合理設置參數,包括但不限于以下:
(1)executor_cores*num_executors
表示的是能夠并行執行Task的數目不宜太小或太大!一般不超過總隊列 cores 的 25%,比如隊列總 cores ???400,最大不要超過100,最小不建議低于40,除非日志量很小。
(2)executor_cores
不宜為1!否則 work 進程中線程數過少,一般 2~4 為宜。
(3)executor_memory
一般 6~10g 為宜,最大不超過20G,否則會導致GC代價過高,或資源浪費嚴重。
(4)driver-memory
driver 不做任何計算和存儲,只是下發任務與yarn資源管理器和task交互,除非你是 Spark-shell,否則一般 1-2g
(5)如果需要對RDD進行cache,那么更多的內存,就可以緩存更多的數據,將更少的數據寫入磁盤,甚至不寫入磁盤。減少了磁盤IO。
(6)對于shuffle操作,reduce端,會需要內存來存放拉取的數據并進行聚合。如果內存不夠,也會寫入磁盤。
如果給executor分配更多內存以后,就有更少的數據,需要寫入磁盤,甚至不需要寫入磁盤。減少了磁盤IO,提升了性能。
(7)對于task的執行,可能會創建很多對象.如果內存比較小,可能會頻繁導致JVM堆內存滿了,然后頻繁GC,垃圾回收 ,minor GC和full GC.(速度很慢).內存加大以后,帶來更少的GC,垃圾回收,避免了速度變慢,性能提升。
spark Yarn
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。