【发布时间】:2017-04-25 20:07:00
【问题描述】:
我没有成功尝试为我的 spark 解释器增加驱动程序内存。 我只是在解释器设置中设置了 spark.driver.memory,一开始一切看起来都很棒。 但是在zeppelin运行的docker容器中有
齐柏林飞艇 0.6.2 星火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 ..... --class org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer /usr/zeppelin/interpreter/spark/zeppelin-spark_2.11-0.6.2.jar 42651
一种破坏一切的最大堆设置。 我的主要问题是我正在尝试运行 mllib 的潜在 Dirchilet 分配,它总是内存不足,只是在驱动程序上死机。 docker 容器现在有 26g 内存,应该足够了。 Zeppelin 本身的 1g 内存应该没问题。 但火花驱动器只需要更多。
我的 Executor 进程有 RAM,但驱动程序在 UI 中报告为
Executor ID Address Status RDD Blocks Storage Memory Disk Used Cores Active Tasks Failed Tasks Complete Tasks Total Tasks Task Time (GC Time) Input Shuffle Read Shuffle Write Thread Dump 驱动程序 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 驱动程序内存。
解释器报告 Java 堆内存不足错误,该错误导致 LDAModel 训练停止。
【问题讨论】:
-
您可以尝试在
zeppelin-env.sh中将MaxPermSize选项添加到ZEPPELIN_INTP_MEM,就像ZEPPELIN_INTP_MEM="-Xms1024m -Xmx12g -XX:MaxPermSize=12g"一样吗?
标签: apache-spark-mllib apache-zeppelin