gpt4 book ai didi

memory - 如何设置 Apache Spark Executor 内存

转载 作者:IT王子 更新时间:2023-10-28 23:28:17 27 4
gpt4 key购买 nike

如何增加 Apache spark 执行器节点的可用内存?

我有一个适合加载到 Apache Spark 的 2 GB 文件。我目前在一台机器上运行 apache spark,所以驱动程序和执行程序在同一台机器上。机器有 8 GB 内存。

当我将文件设置为缓存在内存中后尝试计算文件的行数时,出现以下错误:

2014-10-25 22:25:12 WARN  CacheManager:71 - Not enough space to cache partition rdd_1_1 in memory! Free memory is 278099801 bytes.

我查看了文档 here并在 $SPARK_HOME/conf/spark-defaults.conf

中将 spark.executor.memory 设置为 4g

UI 显示此变量已在 Spark 环境中设置。你可以找到截图here

但是当我转到 Executor tab 时我的单个 Executor 的内存限制仍设置为 265.4 MB。我也仍然遇到同样的错误。

我尝试了提到的各种事情here但我仍然收到错误消息,并且不清楚应该在哪里更改设置。

我正在从 spark-shell 交互地运行我的代码

最佳答案

由于您在本地模式下运行 Spark,因此设置 spark.executor.memory 不会产生任何影响,正如您所注意到的。这样做的原因是,当您启动 spark-shell 时,Worker “生活”在您启动的驱动程序 JVM 进程中,并且用于此的默认内存是 512M。您可以通过将 spark.driver.memory 设置为更高的值来增加它,例如 5g。你可以这样做:

  • 在属性文件中设置(默认为$SPARK_HOME/conf/spark-defaults.conf),

    spark.driver.memory              5g
  • 或通过在运行时提供配置设置

    $ ./bin/spark-shell --driver-memory 5g

请注意,这不能通过在应用程序中设置来实现,因为到那时已经太晚了,进程已经启动了一些内存。

265.4 MB 的原因是 Spark dedicates spark.storage.memoryFraction * spark.storage.safetyFraction存储内存总量,默认为 0.6 和 0.9。

512 MB * 0.6 * 0.9 ~ 265.4 MB

因此请注意,并非所有驱动程序内存都可用于 RDD 存储。

但是当您开始在集群上运行它时,spark.executor.memory 设置将在计算专用于 Spark 内存缓存的数量时接管。

关于memory - 如何设置 Apache Spark Executor 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26562033/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com