scala - Spark本地测试报OutOfMemoryError,如何解决?

标签 scala testing apache-spark

我按照这篇文章编写了一些在本地运行的 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,但不会收集它们,例如:

val rdd = sparkContext.makeRDD(someData)

// not calling `rdd.collect()`

这可能是个问题吗?

最佳答案

我不能准确回答,因为我不知道你的spark配置

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

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

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

您将能够从此页面获得帮助。

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

关于scala - Spark本地测试报OutOfMemoryError,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32176465/

相关文章:

testing - Grails 集成测试因 MissingMethodException 而失败

apache-spark - Cassandra 中频繁截断的问题和 24 小时 ttl 创建大型墓碑

Scala 类型投影

scala - 应用程序中的 Spark 调度 : performance issue

多种类型时的 Scala 方差

sql - 在 Scala Spark 的 for 循环中生成数据帧导致内存不足

apache-spark - 问题 找不到 s3ablock-0001- 的任何有效本地目录

eclipse - 是否有一种无问题的方法可以在集成良好的 Eclipse 中运行 Scala 2.7.7 单元测试?

testing - "Mock"带有 Protractor、Cucumber 和 Chai 的后端 http 响应

javascript - Jasmine:用事件测试可观察量