Spark Kryo探索

本文探讨了Spark中Kryo序列化的优势,它比Java原生序列化快10倍。介绍了如何配置Kryo,包括直接通过sparkConf注册和使用自定义注册器。讨论了未注册类的处理方式,以及如何节省类名记录的开销。建议主要注册自定义及常用工具类,并设置registrationRequired为false。
摘要由CSDN通过智能技术生成
作用

spark中序列化发生在rdd的缓存、shuffle的阶段,是一个比较频繁的操作。但是如果没有特别设置,spark在进行序列化时会使用Java原生的序列化方式,也就是让序列化的类实现java.io.Serializable接口。但是原生的java序列化方式效率很低,默认的writeObjectreadObject基本不会被重写,因此需要有其他能够提升序列化部分的效率的方式。
在spark的官方文档中,提供了两种序列化的方式,分别是Java SerializationKryo Serialization。官方文档中对Kryo的说明是:

Kryo serialization: Spark can also use the Kryo library (version 4) to serialize objects more quickly. Kryo is significantly faster and more compact than Java serialization (often as much as 10x), but does not support all Serializable types and requires you to register the classes you’ll use in the program in advance for best performance.

看了下,说Kryo序列化的速度是java序列化速度的10x。值得一试。

如何配置

有两种办法:
1、通过sparkConf直接对类进行注册;

SparkConf sparkConf = new SparkConf();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值