gpt4 book ai didi

apache-spark - Spark Driver 堆内存问题

转载 作者:行者123 更新时间:2023-12-04 04:58:30 25 4
gpt4 key购买 nike

我发现主节点上的 Java 堆逐渐耗尽的问题。下面是我创建的一个简单示例,它只重复了 200 次。使用下面的设置,master 在大约 1 小时内耗尽内存并出现以下错误:

16/12/15 17:55:46 INFO YarnSchedulerBackend$YarnDriverEndpoint: Launching task 97578 on executor id: 9 hostname: ip-xxx-xxx-xx-xx
#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p"
# Executing /bin/sh -c "kill -9 20160"...

代码:

import org.apache.spark.sql.functions._
import org.apache.spark._

object MemTest {

case class X(colval: Long, colname: Long, ID: Long)

def main(args: Array[String]) {
val conf = new SparkConf().setAppName("MemTest")
val spark = new SparkContext(conf)

val sc = org.apache.spark.sql.SQLContext.getOrCreate(spark)
import sc.implicits._;

for( a <- 1 to 200)
{
var df = spark.parallelize((1 to 5000000).map(x => X(x.toLong, x.toLong % 10, x.toLong / 10 ))).toDF()
df = df.groupBy("ID").pivot("colname").agg(max("colval"))
df.count
}

spark.stop()
}
}

我使用 m4.xlarge(4 个节点 + 1 个主节点)在 AWS emr-5.1.0 上运行。这是我的 Spark 设置

{
"Classification": "spark-defaults",
"Properties": {
"spark.dynamicAllocation.enabled": "false",
"spark.executor.instances": "16",
"spark.executor.memory": "2560m",
"spark.driver.memory": "768m",
"spark.executor.cores": "1"
}
},
{
"Classification": "spark",
"Properties": {
"maximizeResourceAllocation": "false"
}
},

我使用 sbt 编译

name := "Simple Project"

version := "1.0"

scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "2.0.2" % "provided",
"org.apache.spark" %% "spark-sql" % "2.0.2")

然后使用

运行它
spark-submit --class MemTest target/scala-2.11/simple-project_2.11-1.0.jar

使用 jmap -histo 查看内存,我看到 java.lang.Longscala.Tuple2 不断增长。

最佳答案

你确定集群上安装的spark版本是2.0.2吗?

或者,如果您的集群上安装了多个 Spark,您确定调用了正确的 (2.0.2) spark-submit 吗?

(不幸的是,我无法发表评论,所以这就是我将此作为答案发布的原因)

关于apache-spark - Spark Driver 堆内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41170526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com