gpt4 book ai didi

java - 使用 Spark 配置 Java 堆空间

转载 作者:可可西里 更新时间:2023-11-01 16:12:21 25 4
gpt4 key购买 nike

我试图通过在 spark 中对一个小数组进行过采样来创建一个几百兆字节的文件,并将其作为目标文件保存到由 spark-ec2 脚本创建的 hdfs 系统:

//Accepted arguments
val URI = args(0)
val repNum = args(1).toInt

//Create a LabeledPoint array of size 2
val labelPts = sc.parallelize(Array(LabeledPoint(1.0, Vectors.dense(1.0, 0.0, 3.0, 4.0, 5.0, 7.0, 8.0)),
LabeledPoint(1.0, Vectors.dense(3.0, 1.0, 2.0, 8.0, 6.0, 9.0, 9.0))))

//Oversampling repNum LabeledPoints from the array above
val overSample = labelPts.takeSample(true, repNum, 1)

//output oversampling result as object
sc.parallelize(overSample).saveAsObjectFile(URI)

集群由脚本创建:

spark-ec2 -k spark -i ~/.ssh/spark.pem -s 1 launch my-spark-cluster

我捆绑的 spark 应用程序是通过脚本提交的:

./spark-submit \
--class SimpleApp \
--master spark://ec2-52-1-94-89.compute-1.amazonaws.com:7077 \
--executor-memory=4g \
--driver-memory=4g \
--conf spark.akka.frameSize=10000 \
--conf spark.core.connection.auth.wait.timeout=1000 \
~/oversample-assembly-1.0.jar \
hdfs://ec2-52-1-94-89.compute-1.amazonaws.com:9000/user/root/oversampleOut \
70000000

然后它抛出一个EXCEPTION: java.lang.OutOfMemoryError: Java heap space。我不知道它有什么问题,因为如果我的 repNum 设置为 6000000,则不会出现错误并且输出文件大约为 490m,所以我怀疑 java 堆空间仍然受限512m,但是我设置了 --executor-memory=4g 并且这个集群中的工作节点有 7.5GB 内存。这里有什么问题?

最佳答案

您可以使用 sparks 运行时选项 spark.executor.extraJavaOptions 提供额外的 java 选项,也可以使用 spark.storage.memoryFraction 减少用于缓存的内存以获取更多信息,请遵循这个link

关于java - 使用 Spark 配置 Java 堆空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28469084/

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