使用spark-1.6.0-bin-hadoop2.6
根据http://spark.apache.org/docs/latest/configuration.html

我可以使用spark.executor.memory设置堆大小,这是spark-submit中的--executor-memory

运行我的作业时,执行程序的内存没有超过分配的内存,但是我收到错误消息:


java.lang.OutOfMemoryError:Java堆空间


我通过以下方式提交工作:

./bin/spark-submit \
  --class edu.gatech.cse8803.main.Main \
  --master spark://ec2-52-23-155-99.compute-1.amazonaws.com:6066 \
  --deploy-mode cluster \
  --executor-memory 27G \
  --total-executor-cores 100 \
  /root/final_project/phenotyping_w_anchors_161-assembly-1.0.jar \
  1000


我正在使用2个m4.2xlarge实例(32.0 GB,8核)

最佳答案

问题是没有足够的内存分配给驱动程序。
默认情况下为它分配了1024.0 MB

我通过添加指定了3GB(可能太多)


-驱动程序内存3克




./bin/spark-submit \
    --class edu.gatech.cse8803.main.Main \
    --master spark://ec2-52-23-155-99.compute-1.amazonaws.com:6066   \
    --deploy-mode cluster   \
    --executor-memory 27G   \
    --driver-memory 3g \
    /root/final_project/phenotyping_w_anchors_161-assembly-1.0.jar   \
    1000

09-16 07:47