Spark本地测试报告OutOfMemoryError,如何修复?

时间:2015-08-24 07:18:21

标签: scala testing apache-spark

我按照这篇文章写了一些在本地运行的火花测试:http://mkuthan.github.io/blog/2015/03/01/spark-unit-testing/

主要代码如下:

class SparkExampleSpec extends FlatSpec with BeforeAndAfter {

  private val master = "local[2]"
  private val appName = "example-spark"

  private var sc: SparkContext = _

  before {
    val conf = new SparkConf()
      .setMaster(master)
      .setAppName(appName)

    sc = new SparkContext(conf)
  }

  after {
    if (sc != null) {
      sc.stop()
    }
  }
  (...)

但是我发现当我的测试增加时,它会报告OutOfMemoryError并且进程被阻止。

如何解决?

PS:有些测试会生成一些RDD,但不会collect,例如:

val rdd = sparkContext.makeRDD(someData)

// not calling `rdd.collect()`

这可能是一个问题吗?

1 个答案:

答案 0 :(得分:0)

我无法准确回答,因为我不知道你的火花配置

但是,我认为内存设置可能是。

检查驱动程序(或执行程序)内存的配置

$SPARK_PATH/conf/spark-default.conf
spark.driver.memory    
spark.executor.memory

您可以从此页面获得帮助。

http://spark.apache.org/docs/latest/configuration.html