我尝试为我的spark解释器增加驱动程序内存失败了。 我只是在解释器设置中设置spark.driver.memory,一开始看起来很棒。 但是在zeppelin运行的docker容器中有
Zeppelin 0.6.2 Spark 2.0.1
2:06 / usr / lib / jvm / java-8-openjdk-amd64 / bin / java -cp /usr/zeppelin/int.....-2.7.2/share/hadoop/tools/lib/ * -Xmx1g ..... - 类org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer /usr/zeppelin/interpreter/spark/zeppelin-spark_2.11-0.6.2.jar 42651
最大堆设置会破坏一切。 我的主要问题是我正在尝试运行mllib的Latent Dirchilet Allocation并且它总是耗尽内存并且在驱动程序上死掉。 docker容器现在有26g RAM,所以应该足够了。 Zeppelin本身应该没有1g内存。 但火花驱动器只需要更多。
我的执行程序进程有RAM,但驱动程序在UI中报告为
执行者ID地址状态RDD阻止存储内存磁盘使用核心活动任务失败任务完成任务总任务任务时间(GC时间)输入随机读取随机写入线程转储 驱动器172.17.0.6:40439有效0 0.0 B / 404.7 MB 0.0 B 20 0 0 1 1 1.4 s(0 ms)0.0 B 0.0 B 0.0 B螺纹转储
非常糟糕
设置ZEPPELIN_INTP_MEM =' -Xms512m -Xmx12g'似乎没有任何改变。 我虽然没有正确加载zeppelin-env.sh所以我直接在docker create -e ZE中传递了这个变量......但是没有改变任何东西。
设置SPARK_HOME并将其连接到独立的spark群集。但那部分有效。只有驱动程序内存不足。
但是我尝试使用8g驱动程序内存和6g执行程序启动本地[*]进程,但是同样是非常糟糕的450mb驱动程序内存。
intrepreter报告java堆内存不足错误,并且中断了LDAModel训练。
答案 0 :(得分:0)
在遇到完全相同的问题时遇到了这个问题!希望你现在已经找到了解决方案,但是万一其他人遇到这个问题并且正在寻找像我这样的解决方案,这就是问题所在:
你在这里看到的过程不被Zeppelin视为解释过程,它实际上是一个Spark Driver过程。这意味着它获得的选项设置与ZEPPELIN_INTP_MEM
变量不同。将其添加到您的zeppelin-env.sh
:
export SPARK_SUBMIT_OPTIONS="--driver-memory 12G"
重新启动Zeppelin,你应该全力以赴! (测试并使用最新的0.7.3,假设它适用于早期版本)。
答案 1 :(得分:0)
https://issues.apache.org/jira/browse/ZEPPELIN-1263解决了这个问题。之后,您可以使用任何标准的火花配置。例如您可以通过在spark解释器设置中设置spark.driver.memory来指定驱动程序存储器。