对于特定的Spark Shell会话,我正在尝试
spark-shell -Dspark.akka.frameSize=10000 --executor-memory 4g
在外壳内,我得到了:
System.getProperty("spark.executor.memory")
res0: String = 4g
System.getProperty("spark.akka.frameSize")
res1: String = null
可能是此字符串不正确,但是尝试对数据集执行take()时出现frameSize错误。
org.apache.spark.SparkException: Job aborted due to stage failure: Serialized task 6:0 was 12518780 bytes which exceeds spark.akka.frameSize (10485760 bytes). Consider using broadcast variables for large values.
这显示默认的10M的frameSize。也许我的语法错误。请帮忙。谢谢!
这在Spark的配置指南中“动态加载Spark属性”下进行了介绍:
Spark Shell和
spark-submit
工具支持两种动态加载配置的方式。第一个是命令行选项,例如--master
,如上所示。spark-submit
可以使用该--conf
标志接受任何Spark属性,但对在启动Spark应用程序中起作用的属性使用特殊标志。
例如:
./bin/spark-submit --name "My app" --master local[4] --conf spark.akka.frameSize=100 --conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句