如何减少apache火花内存占用?

时间:2015-08-13 11:21:16

标签: apache-spark

我有一个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中学习一些代码......

有没有办法可以减少火花上的内存占用,这样我才能进行测试?

感谢

1 个答案:

答案 0 :(得分:5)

Apache zeppelin是一个很棒的工具,但是我看到了同样的事情,占用了大量的内存。您可以使用命令,例如,在spark home文件夹中,bin / spark-shell会给你一个spark scala shell,但它的使用并不美观和直观。

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

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

同时查看https://github.com/andypetrella/spark-notebook,需要更小的RAM足迹。火花自身花费较少,但齐柏林飞艇从我所看到的东西中占据了很大的空间。

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