千家信息网

spark kryo序列化怎么实现

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"spark kryo序列化怎么实现",在日常操作中,相信很多人在spark kryo序列化怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"spa
千家信息网最后更新 2025年12月01日spark kryo序列化怎么实现

这篇文章主要介绍"spark kryo序列化怎么实现",在日常操作中,相信很多人在spark kryo序列化怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"spark kryo序列化怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

广播大变量,每个executor可以对应一个blockmanager里面存着变量,虽然我们减少了网络传输,减少了内存占用整体空间,但是还可以进一步减小网络传输和内存占用空间,所以我们可以用kryo序列化机制!还可以进一步优化,优化这个序列化格式。

默认情况下,Spark内部是使用Java的序列化机制,ObjectOutputStream / ObjectInputStream,对象输入输出流机制,来进行序列化这种默认序列化机制的好处在于,处理起来比较方便;也不需要我们手动去做什么事情,只是,你在算子里面使用的变量,必须是实现Serializable接口的,可序列化即可。但是缺点在于,默认的序列化机制的效率不高,序列化的速度比较慢;序列化以后的数据,占用的内存空间相对还是比较大。

可以手动进行序列化格式的优化Spark支持使用Kryo序列化机制。Kryo序列化机制,比默认的Java序列化机制,速度要快,序列化后的数据要更小,大概是Java序列化机制的1/10。所以Kryo序列化优化以后,可以让网络传输的数据变少;在集群中耗费的内存资源大大减少。

Kryo序列化机制,一旦启用以后,会生效的几个地方:

  • 算子函数中使用到的外部变量,肯定要传输的时候要序列化了

    • 算子函数中使用到的外部变量,使用Kryo以后:优化网络传输的性能,可以优化集群中内存的占用和消耗,算子函数中用到了外部变量,会序列化,使用Kryo

  • 持久化RDD时进行序列化,StorageLevel.MEMORY_ONLY_SER

    • 持久化RDD,优化内存的占用和消耗;持久化RDD占用的内存越少,task执行的时候,创建的对象,就不至于频繁的占满内存,频繁发生GC。当使用了序列化的持久化级别时,在将每个RDD partition序列化成一个大的字节数组时,就会使用Kryo进一步优化序列化的效率和性能。

  • shuffle

    • shuffle:可以优化网络传输的性能在进行stage间的task的shuffle操作时,节点与节点之间的task会互相大量通过网络拉取和传输文件,此时,这些数据既然通过网络传输,也是可能要序列化的,就会使用Kryo。

      SparkConf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")


  1. 在SparkConf中设置一个属性,spark.serializer,org.apache.spark.serializer.KryoSerializer类;

  • Kryo之所以没有被作为默认的序列化类库的原因,就要出现了:主要是因为Kryo要求,如果要达到它的最佳性能的话,那么就一定要注册你自定义的类(比如,你的算子函数中使用到了外部自定义类型的对象变量,这时,就要求必须注册你的类,否则Kryo达不到最佳性能)。感觉很麻烦,所以没有默认。

  • 注册你使用到的,需要通过Kryo序列化的,一些自定义类,SparkConf.registerKryoClasses()

    项目中的使用:.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer").registerKryoClasses(new Class[]{CategorySortKey.class})

到此,关于"spark kryo序列化怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

序列 机制 内存 传输 变量 网络 网络传输 性能 算子 函数 数据 学习 对象 空间 进一 频繁 手动 效率 时候 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 DNS服务器解析域名出错 达蒙数据库调优 赵成刚数据库 excel 数据库 查询 软件开发项目总结汇报 实惠的进销存软件开发流程 绝地求生国服服务器繁忙如何解决 足球经理需要数据库验证 网络安全知识课程培训 服务器2核和4核 银行科技岗跳槽互联网 cmd查看服务器上的文本内容 互联网金融大数据科技服务 沈阳商城软件开发放心省心 魔兽世界服务器怎么调 辽阳供热站自动化控制软件开发 阴阳师电脑端老是无法连接服务器 电力行业网络安全工作方案报价 信息网络安全法的第二个时代 树莓派的数据库 医院问诊数据库数据表 广州系统软件开发正规平台 吴忠市网络安全教育平台 网络技术开发伦理 国家网络安全检查工作方案 神奇宝贝落雪服务器 无限宝不能连接服务器怎样解决 网络技术的发展历程和发展趋势 品牌服务器 组装服务器 软件开发的应用领域
0