【问题标题】:how to reduce apache spark memory footprint?如何减少 apache spark 内存占用?
【发布时间】:2018-11-06 10:06:52
【问题描述】:

我有一个 apache spark full stack+ Apache zeppelin 运行在一个资源很少 (512MB) 的机器上,它正在崩溃。

Spark Command: /usr/lib/jvm/java/bin/java -cp /home/ec2-user/spark-1.4.1-bin-hadoop2.6/sbin/../conf/:/home/ec2-user/spark-1.4.1-bin-hadoop2.6/lib/spark-assembly-1.4.1-hadoop2.6.0.jar:/home/ec2-user/spark-1.4.1-bin-hadoop2.6/lib/datanucleus-api-jdo-3.2.6.jar:/home/ec2-user/spark-1.4.1-bin-hadoop2.6/lib/datanucleus-core-3.2.10.jar:/home/ec2-user/spark-1.4.1-bin-hadoop2.6/lib/datanucleus-rdbms-3.2.9.jar -Xms512m -Xmx512m -XX:MaxPermSize=256m org.apache.spark.deploy.master.Master --ip ip-172-31-24-107 --port 7077 --webui-port 8080
========================================
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000daaa0000, 357957632, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 357957632 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/jvm-17290/hs_error.log

我知道这是个坏主意,但我没有其他地方可以测试它,并且希望能够在 scala + apache spark 中学习一些代码...

有什么方法可以减少 spark 上的内存占用,以便进行测试?

谢谢

【问题讨论】:

  • 没有多少内存可以做。如果您没有可用的集群,请尝试将 Amazon EC2 与 Spark 分发包附带的脚本一起使用,spark-ec2 文件夹。
  • 是的,我试过了,它将创建一个集群(1 个主节点和 1 个工作节点)。我想将两者都放在同一台机器上,这样我就可以让它运行整个月......

标签: apache-spark


【解决方案1】:

Apache zeppelin 是一个很棒的工具,但我也看到过同样的东西,它占用了大量的 RAM。您可以使用命令,例如,在 spark 主文件夹中,bin/spark-shell 将为您提供 spark scala shell,但使用起来并不美观和直观。

您可以使用 Eclipse (scala IDE) 或 IntelliJ (具有 scala 插件) 进行 spark scala 开发,只需要使用 maven 或 sbt 添加 jars。

您可以在 scala shell 中进行原型设计,然后复制并粘贴到 IDE 中。

还可以查看https://github.com/andypetrella/spark-notebook,它占用的 RAM 空间更小。从我所见,Spark 本身占用的空间更少,但 zeppelin 占用了很多空间。

同样适用于 scala notebook:https://github.com/alexarchambault/jupyter-scala,然后您可以将 spark jar 添加到 env,创建 sparkContext 对象并使用它。

【讨论】:

  • 同理,我为 Zeppelin 使用了 1 GB 免费套餐 Amazon EC2 实例。并且无法弄清楚失败的原因。所以,我最后所做的就是废弃免费层实例并创建一个更大尺寸 (RAM) 的实例。它工作得很好..
猜你喜欢
  • 1970-01-01
  • 2014-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
相关资源
最近更新 更多