簡體   English   中英

spark中的執行者內存設置

[英]executor memory setting in spark

我制作了獨立的集群,並希望找到處理我的應用程序的最快方法。 我的機器有 12 克內存。 這是我嘗試過的一些結果。

Test A (took 15mins)
1 worker node
spark.executor.memory = 8g
spark.driver.memory = 6g

Test B(took 8mins)
2 worker nodes
spark.executor.memory = 4g
spark.driver.memory = 6g

Test C(took 6mins)
2 worker nodes
spark.executor.memory = 6g
spark.driver.memory = 6g

Test D(took 6mins)
3 worker nodes
spark.executor.memory = 4g
spark.driver.memory = 6g

Test E(took 6mins)
3 worker nodes
spark.executor.memory = 6g
spark.driver.memory = 6g
  1. 與測試 A 相比,測試 B 只是增加了一個喚醒器(但相同的內存花費 4*2=8)但它使應用程序運行速度更快。 為什么會發生?
  2. 測試 C、D、E 試圖花費比它多得多的內存。 但它有效,甚至更快。 配置內存大小僅用於限制內存邊緣嗎?
  3. 它不像添加工作節點那么快。 我應該如何知道 worker 的利潤數和 executor 內存大小?

在 TestB 上,您的應用程序在 2 個 CPU 上並行運行,因此總時間幾乎是一半。

關於內存 - 內存設置定義上限 設置少量將使您的。 應用程序來執行更多的 GC,如果最終你的堆滿了,你會收到一個OutOfMemoryException

關於最合適的配置 - 好吧,這取決於。 如果您的任務不消耗太多 RAM - 將 Spark 配置為擁有與您的 CPU 一樣多的執行程序。 否則,配置您的執行程序以匹配所需的適當 RAM 量。 請記住,這些限制不應該是恆定的,並且可能會根據您的應用程序要求而改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM