Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark中的执行器内存设置_Apache Spark - Fatal编程技术网

Apache spark spark中的执行器内存设置

Apache spark spark中的执行器内存设置,apache-spark,Apache 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 work

我制作了独立集群,希望找到处理我的应用程序的最快方法。 我的机器有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
  • 和测试A相比,测试B只增加了一个WORK(但相同的内存消耗为4*2=8),但它使应用程序速度更快。为什么会这样
  • 测试C、D、E试图花费比它更多的内存。但它起作用了,甚至更快。配置内存大小只是为了限制内存的边缘吗
  • 它并不像添加工作节点那样快。如何知道工作进程的利润数和执行器内存大小

  • 在TestB上,应用程序在2个CPU上并行运行,因此总时间几乎是一半

    关于内存-内存设置定义了一个上限设置,少量的内存将使您的。应用程序执行更多GC,如果堆最终被填满,您将收到一个
    OutOfMemoryException

    关于最合适的配置-嗯,这取决于。如果您的任务不消耗太多RAM,请将Spark配置为具有与您的CPU一样多的执行器。 否则,请配置执行器以匹配所需的适当RAM量。
    请记住,这些限制不应该是恒定的,可能会因应用程序需求而改变。

    快速问题每次测试后是否重新启动集群?我只是想知道缓存是否改善了随后的性能提升?@charlesgomes真的需要重新启动吗?例如,如果在实际测量试验之前运行每个场景一次或两次会怎么样?否。主程序和工作程序从“bin/spark类”开始。我刚刚通过'bin/spark-submit'OutOfMemory重新分配了我的集群异常错误来自执行内存?或者驱动程序内存?它更可能来自执行器,因为它是解析数据的部分。而不是驱动程序内存的用途?我认为这是用于源数据和RDD的完全处理数据。如果执行一个操作,例如RDD.collect(),结果将存储在驱动程序内存中。感谢您对我的帮助:)