Application Properties

Property Name Default Meaning
spark.app.name (none) The name of your application. This will appear in the UI and in log data.
spark.driver.cores 1 Number of cores to use for the driver process, only in cluster mode.
spark.driver.maxResultSize 1g Limit of total size of serialized results of all partitions for each Spark action (e.g. collect) in bytes. Should be at least 1M, or 0 for unlimited. Jobs will be aborted if the total size is above this limit. Having a high limit may cause out-of-memory errors in driver (depends on spark.driver.memory and memory overhead of objects in JVM). Setting a proper limit can protect the driver from out-of-memory errors.

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

Spark的action操作处理后的所有分区的序列化后的总字节大小。最小是1M,设置为0是不限制。如果总大小超出这个限制则job会失败。

设置 spark.driver.maxResultSize过大可能会导致driver端的OOM错误。 设置合适的大小可以保护driver免受内存不足错误的影响。

-----

每个Spark action的所有分区的序列化结果的总大小限制(例如,collect行动算子)。 应该至少为1M,或者为无限制。 如果超过1g,job将被中止。 如果driver.maxResultSize设置过大可能会超出内存(取决于spark.driver.memory和JVM中对象的内存开销)。 设置适当的参数限制可以防止内存不足。

默认值:1024M
设置为0则为无限制,但是有OOM的风险

-----

driver.maxResultSize太小

Caused by: org.apache.spark.SparkException:
 Job aborted due to stage failure: Total size of serialized 
 results of 374 tasks (1026.0 MB) is bigger than
  spark.driver.maxResultSize (1024.0 MB)

spark.driver.maxResultSize默认大小为1G 每个Spark action(如collect)所有分区的序列化结果的总大小限制,简而言之就是executor给driver返回的结果过大,报这个错说明需要提高这个值或者避免使用类似的方法,比如countByValue,countByKey等。

将值调大即可

spark.driver.maxResultSize 2g
                    Application PropertiesProperty Name			Default			Meaning		spark.app.name			(none)			The name of your application. This will appear in the UI and in log data.		spark.driver.cores			1			Number of cores to use for the driver process, only in cluster 
				
约瑟夫问题是一个经典的问题。已知n个人(不妨分别以编号1,2,3,…,n 代表)围坐在一张圆桌周围,从编号为 k 的人开始,从1开始顺时针报数1, 2, 3, ...,顺时针数到m 的那个人,出列并输出。然后从出列的下一个人开始,从1开始继续顺时针报数,数到m的那个人,出列并输出,…依此重复下去,直到圆桌周围的人全部出列。 输入:n,k,m 输出:按照出列的顺序依次输出出列人的编号,编号中间相隔一个空格,每10个编号为一行。 非法输入的对应输出如下 输入::n、k、m任一个小于1 输出:n,m,k must bigger than 0. 输入:k>n 输出:k should not bigger than n. 9,3,2 4 6 8 1 3 7 2 9 5
set by SparkConf:conf.set("spark.driver.maxResultSize", "3g") set byspark-defaults.conf:spark.driver.maxResultSize 3g set when callingspark-submit:--conf spark.driver.maxResultSize=3g 转载...
最近有个需求需要union 上千甚至更多的dataset数据,然后cache(),然后count(),在执行count()这个action操作的时候,spark程序报错,如下: org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialized results of 16092 tasks (16.0 GB) is bigger than spark.driver.maxResultSize
今天遇到了spark.driver.maxResultSize的异常,通过增大该值解决了,但是其运行机制不是很明白,先记录在这里,希望后面有机会可以明白背后的机制。 该异常会报如下的异常信息: Job aborted due to stage failure: Total size of serialized results of 3979 tasks (1024.2 MB) is bigger than spark.driver.maxResultSize (1024.0 MB) 锁定了是sp...
.builder \ .appName("Python Spark SQL basic example") \ .config("spark.memory.fraction", 0.8) \
如何设置spark.kryoserializer.buffer.max value 在运行Spark计算任务时,出现了Buffer Overflow错误,Kryo序列化在序列化对象时缓存爆了。 反复设置了几次,终于发现了自己的错误,分享出来,希望大家能避坑。 设置Kryo为序列化类 //设置Kryo为序列化类(默认为Java序列类) sparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")...
报错代码 20/09/15 15:21:32 ERROR scheduler.TaskSetManager: Total size of serialized results of 423 tasks (4.0 GB) is bigger than spark.driver.maxResultSize (4.0 GB) Exception in thread "main" org.apache.spa   Spark提交作业job的时候要指定该job可以使用的CPU、内存等资源参数,生产环境中,任务资源分配不足会导致该job执行中断、失败等问题,所以对Spark的job资源参数分配调优非常重要。   spark提交作业,yarn-cluster模式示例:   ./bin/spark-submit\   --class com.ww.rdd.wordcount \   --m... 今天在开发SparkRDD的过程中出现Buffer Overflow错误,查看具体Yarn日志后发现是因为Kryo序列化缓冲区溢出了,日志建议调大spark.kryoserializer.buffer.max的value,搜索了一下设置keyo序列化缓冲区的方法,特此整理记录下来。 20/01/08 17:12:55 WARN scheduler.TaskSetManager: Lost task 1.0 in stage 1.0 (TID 4, s015.test.com, executor 1):