Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Resolving "Kryo serialization failed: Buffer overflow" Spark exception

I am trying to run Spark (Java) code and getting the error

org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow. Available: 0, required: 27".

Other posts have suggested setting the buffer to its max value. When I tried this with max buffer value of 512MB I got the error

java.lang.ClassNotFoundException: org.apache.spark.serializer.KryoSerializer.buffer.max', '512'

How can I solve this problem?

like image 974
Raghavendran Pedapati Avatar asked Jun 08 '16 18:06

Raghavendran Pedapati


2 Answers

Try using "spark.kryoserializer.buffer.max.mb", "512" instead spark.kryoserializer.buffer.max", "512MB"

like image 180
Supardi Rst Avatar answered Nov 08 '22 07:11

Supardi Rst


The property name is correct, spark.kryoserializer.buffer.max, the value should include the unit, so in your case is 512m.

Also, dependending where you are setting up the configuration you might have to write --conf spark.kryoserializer.buffer.max=512m. For instance, with a spark-submit or within the <spark-opts>...</spark-opts> of an Oozie worflow action.

like image 40
nessa.gp Avatar answered Nov 08 '22 08:11

nessa.gp