火花独立应用程序内存小文本文件

时间:2014-08-10 13:34:53

标签: scala apache-spark

在我的macbook pro上使用8 GB Ram,

使用jdk 1.8.0_20和scala 2.10.4

在一个独立的scala应用程序中使用spark 1.0.2我在文件上尝试了一个简单的行数,大小约为800MB。

我只点击了spark / sbin / start-all.sh,仅针对IP进行配置,并希望该应用正常运行。

$ sbt run

由于OutOfMemoryExceptions而连接,执行,死亡。

现在注释部分是:使用spark / bin / spark-submit或spark-shell,执行相同的代码会导致有效的结果,而不会有任何内存异常。我这样做:

$ sbt package
$ ./bin/spark-submit --class Application \
                     --master spark://192.168.188.25:7077/ \
                      sparktest_2.10-1.0.jar

并获得正确的输出。

来源:

object Application {
  def main(args: Array[String]) {
    val conf = new SparkConf()
      .setAppName("Sparkling")
      .setMaster("spark://192.168.188.25:7077")

    val sc = new SparkContext(conf)

    val xml = sc.textFile("demo.xml")
    println("partitions: "+ xml.partitions.length) // 26
    println("length: " + xml.count) // 21858279

    sc.stop()
  }
}

任何想法?除了使用更多分区外,没有帮助:/

我能提供的信息? memory-flags都是默认值。

1 个答案:

答案 0 :(得分:0)

(请提供完整的OOM ST,也请告诉我们何时它OOMs - 在提交火花作业之前或在作业执行期间进行OOM。需要更多日志和说明来确定发生了什么)

在启动sbt vs启动spark-shell /使用spark-submit时,由于不同的默认内存设置,看起来你的驱动程序是OOMing。我不认为这是你的工作,因为你声称,如果以另一种方式提交,它运行得很好。因此,如果你摆弄sbt的内存设置,它可以工作。所以我不认为这是一个Spark问题,而是一个sbt问题,所以在评论中遵循Naetmul提供的链接应该修复。

或者,这是我通常运行我的工作的方式,是不使用sbt run,而是构建jar并使用java -cp your.jar