每次使用1GB执行程序内存启动spark-shell

时间:2016-02-25 13:24:14

标签: shell apache-spark cloudera

运行spark-shell时遇到问题。我每次都收到以下错误消息:

所需的执行程序内存(1024 + 384 MB)高于此群集的最大阈值(1024 MB)!

我做了以下步骤来解决问题,但没有任何结果。

  1. 将yarn.scheduler.maximum-allocation-mb设置为8GB
  2. 使用参数executor-memory
  3. 启动spark-shell

    奇怪的是,火花壳在重启服务后工作了一次。在此尝试之后,spark-shell不会加载正确的执行程序内存。它每次以1GB

    开始

    希望有人能帮我解决问题。

    亲切的问候

    hbenner89

3 个答案:

答案 0 :(得分:1)

您是否尝试过分配超过1g的内存,因为它抱怨它需要更多内存。

我会尝试用2g作为测试。

bin / spark-shell --executor-memory 2g --master yarn

务必为操作系统留一个小垫子,这样它就不会占用整个系统的内存。

此选项也适用于您一直使用的独立模式,但如果您一直使用ec2脚本,我们设置" spark.executor.memory"在conf / spark-defaults.conf中自动执行此操作,因此您不必每次都在命令行上指定它。你也可以在YARN做同样的事。

答案 1 :(得分:1)

感谢您的回答。帮助理解了内存选项。

我发现了问题:问题不在于执行程序 - 内存。我将yarn.nodemanager.resource.memory-mb更改为2GB。这一改变后一切正常。

答案 2 :(得分:1)

我遇到了同样的问题,将执行程序内存减少到512MB并且工作正常。假设512MB足以满足您的计划。

spark-submit --proxy-user spark  --master yarn --deploy-mode client  --name pi --conf "spark.app.id=pi"  --driver-memory 512M  --executor-memory 512M pi.py