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):