千家信息网

Spark中如何以序列化方式调优

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下Spark中如何以序列化方式调优,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在任何分布式应用中序列化都
千家信息网最后更新 2025年12月02日Spark中如何以序列化方式调优

小编给大家分享一下Spark中如何以序列化方式调优,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在任何分布式应用中序列化都扮演者一个重要的角色。序列化过程非常慢的或者消耗大量字节的序列化格式,都是会巨大的减缓计算速度。通常这是优化spark应用程序的第一件事情。Spark目标是在你的操作中直接便利的使用java类型和性能找到一个平衡点。目前,spark提供两种序列化的库:

1.Java serialization:默认情况下,spark使用Java的 ObjectOutputStream框架,序列化对象。可以应用于任何继承了java.io.Serializable的自创建类。你也可以通过更密切的继承java.io.Externalizable,来控制你自己的序列化方式的性能。JAVA的序列化虽然灵活,但是通常是非常慢的,同时针对很多类会导致大的序列化格式。

2.Kryo serialization:Spark也可以用 Kryo library (version 2) 来加速序列化。Kryo比java序列化更快,更紧凑(往往搞出10倍),但是并不支持所有的序列化类型,为了达到最佳的性能需要提前注册你在你的程序中使用的类。

你可以通过使用SparkConf更改spark的序列化方式。这个设置不仅影响到worker间传输的Shuffle数据也会序列化准备写到磁盘的RDD。Kryo不是默认序列化方式的主要原因是需要自定义注册。我们建议使用它在任何网络密集型应用程序中。

Spark会自动的包括Kryo,针对大多数通用的scala类。

向Kryo注册你的类,可以通过registerKryoClasses 方法

val conf = new SparkConf().setMaster(...).setAppName(...)

conf.registerKryoClasses(Array(classOf[MyClass1], classOf[MyClass2]))

val sc = new SparkContext(conf)

https://github.com/EsotericSoftware/kryo 链接文档描述了更先进的kryo注册选项,如添加自定义序列化代码。

如果你的对象非常大,你需要增加spark.kryoserializer.buffer。这个值要大于你要序列化的最大的对象。

最后,如果不向Kyro注册你的自定义类型,Kyro也会继续工作,但是他会保存你每个对象的类全名,这非常浪费。

关于spark对Kyro的配置的支持,请参考。

http://spark.apache.org/docs/1.6.0/configuration.html#compression-and-serialization

以上是"Spark中如何以序列化方式调优"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

序列 方式 对象 应用 可以通过 性能 程序 篇文章 类型 内容 应用程序 格式 参考 支持 巨大 紧凑 重要 不怎么 事情 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 调度中心网络安全预案 安全通服务器机房是哪家 省公安厅网络安全管理局 庆城租房软件开发 服务器设置多用户同时登陆 web软件开发团队介绍 小型机和服务器的区别 关于网络安全的mv 数据库外键不能重复吗 计算器网络安全实施方案 黄陂发展前景好的计算机软件开发 软件开发不符合 计算机网络技术专业属于哪类 江苏项目软件开发厂家 华为云数据库业务总裁 醴陵公安系统的网络安全管理 大华联动报警服务器无法启动 办公软件开发技术研究论文 微信其他账号数据库 数据库如何打开bak文件 数据库排行榜小白评测 山东办公系统软件开发 车型网络技术分析 安卓系统软件开发企业 连云港网络安全作用 网络安全系统的主要功能 数据库就领域而言属于什么 计算机三级网络技术获证条件 常用的蛋白质数据库包 干网络安全学习哪种编程语言
0