spark:报错com.esotericsoftware.kryo.KryoException: Buffer underflow.
场景
spark-sql跑一个较大的任务,数据落盘时报错:
com.esotericsoftware.kryo.KryoException: Buffer underflow.
Caused by: org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow. Available: 0, required: 53139320. To avoid this, increase spark.kryoserializer.buffer.max value.
at org.apache.spark.serializer.KryoSerializerInstance.serialize(KryoSerializer.scala:350)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:429)
... 3 more45
探索
查看抛出这个报错的源码:https://github.com/apache/spark/blob/ebdf41dd698ce138d07f63b1fa3ffbcc392e7fff/core/src/main/scala/org/apache/spark/serializer/KryoSerializer.scala
override def readObject[T: ClassTag](): T = {try {kryo.readClassAndObject(input).asInstanceOf[T]} catch {// DeserializationStream uses the EOF exception to indicate stopping condition.case e: KryoExceptionif e.getMessage.toLowerCase(Locale.ROOT).contains("buffer underflow") =>throw new EOFException}}
是在将输入流转换成一个样例类时引发的报错,看注释应该是缺失终止符导致的异常。
当我把这个任务切分成两部分跑之后,就不会出现这个报错,猜测可能是因为数据量过大的缘故。spark的worker上的每个excutor的每个core,都有一个kryo的buffer 缓冲区,这个缓冲区默认初始大小是64KB,根据任务需要会提高buffer大小,默认最大可以提高到64m。
根据提示尝试提高最大buffer大小的参数:
--conf spark.kryoserializer.buffer.max=512m
再观察几天看问题会不会复现。
需要注意的是,官方提示spark.kryoserializer.buffer.max参数设定的值必须小于2048M.
spark:报错com.esotericsoftware.kryo.KryoException: Buffer underflow.相关推荐
- com.esotericsoftware.kryo.KryoException: Buffer underflow. 解决
用kryo进行序列化和反序列化的时候,序列化的过程很顺利,反序列化的过程中遇到报错KryoException: Buffer underflow. 代码如下: //其中path是将序列化对象保存的路径 ...
- 【Dubbo】序列化异常—— com.esotericsoftware.kryo.KryoException: Buffer underflow
Dubbo服务通常依赖一个jar包来表示服务签名,其中包含了服务的接口定义. 服务的提供者(服务端)需实现这些接口: 服务的调用者(客户端)可以通过这些接口调用服务. 问题 此文提到的异常 " ...
- Spark 中 JVM 内存使用及配置详情、spark报错与调优、Spark内存溢出OOM异常
一般在我们开发spark程序的时候,从代码开发到上线以及后期的维护中,在整个过程中都需要涉及到调优的问题,即一开始需要考虑如何把代码写的更简洁高效调优(即代码优化),待开发测试完成后,提交任务时综合考 ...
- spark报错:invalid token
启动spark报错,启动container失败,去看yarn的日志,显示invalid token, 经过排查是hadoop子节点的配置和主节点的配置不一致导致的,同步之后,问题解决. 转载于:htt ...
- Spark报错:Error:scalac: Scala compiler JARs not found (module ‘Spark_two‘): C:\Users\沫小新\.m2\repo
Spark报错: 找不到scala-compiler-2.11.8.jar的包 Error:scalac: Scala compiler JARs not found (module 'Spark_t ...
- Spark报错It appears that you are attempting to broadcast an RDD or reference an RDD from an action
Spark报错: Exception: It appears that you are attempting to broadcast an RDD or reference an RDD from ...
- kerberos 下运行spark 报错 Requested user hdfs is banned
启动运行报错 main : run as user is hdfs main : requested yarn user is hdfs Requested user hdfs is bannedFa ...
- Spark 报错 DROP TABLE IF EXISTS should not show AnalysisException
spark-sql 执行执行 drop table if exists xxxx 的时候,报错信息如下: DROP TABLE IF EXISTS should not show AnalysisEx ...
- Spark报错 Failed to send RPC xxx to/ip:43074 java.nio.channels.ClosedChannelException
1.美图 2.背景 是这样的,我写了一个spark程序,然后,运行的时候,我kiill yarn掉这个程序,然后发现程序报个错然后继续运行了. 我在页面点击任务停止就没事,我页面点击是调用yarn a ...
最新文章
- 强势分享5款超级实用的办公软件,建议收藏!
- ul li前面的点怎么变大_亚马逊产品被投诉需要UL认证,该如何办理?
- git遇到的问题-- Another git process seems to be running in this repository
- linux与windows双系统保持时间同步
- 高精度加法(简明版C语言),高精度加法(简明版C语言)
- AngularJs学习笔记--html compiler
- 国内达梦数据库相关函数-时间日期
- wpf之blend之自定义最小化按钮
- 不同语言Sql Server的库交换出现乱码
- Nginx限制访问次数和并发数
- 日久见人心,以小见大
- 数据结构 实验2——表达式求值
- wps,Excel图表如何添加参考线
- java 人民币转换,java人民币大小写转换方法
- QT QMessageBox 按钮文字更改为中文
- 1024X600RGB屏幕规格书分析
- python按某列拆分excel表格_利用Python+Pandas实现从一个excel表中提取列形成新表
- python空间点赞_用Python登录好友QQ空间点赞
- Python实现PPT转化为Word和OCR识别
- Microcontent - 微内容