序列化在任何分布式应用程序的性能中都扮演着重要的角色。序列化对象很慢的格式,或者消耗大量字节的格式,将大大降低计算速度。通常情况下,这是优化Spark应用程序时需要优化的第一件事。Spark旨在在方便(允许您在操作中使用任何Java类型)和性能之间取得平衡。它提供了两个序列化库:

~~

一:Java Serialization:

~~
1:默认 2:灵活(可以与任意类)3:慢性能不高体积更大
来自官网:By default, Spark serializes objects using Java’s ObjectOutputStream framework, and can work with any class you create that implements java.io.Serializable. You can also control the performance of your serialization more closely by extending
Java serialization is flexible but often quite slow, and leads to large serialized formats for many classes.
默认情况下,Spark使用Java的ObjectOutputStream框架序列化对象,并且可以与您创建的任何实现Java .io. serializable的类一起工作。还可以通过扩展更紧密地控制序列化的性能
Java序列化是灵活的,但通常很慢,并导致许多类的大型序列化格式。

二:Kryo Serialization:

1:更快 2:体积小3:并不支持所有类4事先要注册(否非更大没有起到很好效果)
来自官网: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.
Spark还可以使用Kryo库(版本4)更快地序列化对象。Kryo比Java序列化快得多,也更紧凑(通常是10倍),但是不支持所有可序列化类型,并且要求您预先注册将在程序中使用的类,以获得最佳性能。
注意:上面说是10倍,其实并没有,要以事实为依据
后期我会带大家一起测试

三:序列化在spark中的使用场景

1:算子里面使用到了外部变量
2:cache缓存
3:shuffle
官网:https://spark.apache.org/docs/latest/tuning.html

Spark-Serialization序列化的2种方式解释对比使用场景相关推荐

  1. [转载] Java序列化的几种方式以及序列化的作用

    参考链接: Java中带有继承的对象序列化 文章转载自:  本文着重讲解一下Java序列化的相关内容. 如果对Java序列化感兴趣的同学可以研究一下. 一.Java序列化的作用 有的时候我们想要把一个 ...

  2. Java序列化的几种方式以及序列化的作用(文章有所改变)

    本文着重讲解一下Java序列化的相关内容. 如果对Java序列化感兴趣的同学可以研究一下. 一.Java序列化的作用    有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从 ...

  3. Redis序列化的几种方式

    Redis序列化的几种方式 1.什么是Redis Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis ...

  4. android double转string_Java 数组转 List 的三种方式及对比

    来源:Java数组转List的三种方式及对比_五道口-CSDN博客 作者:大脑补丁 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解 ...

  5. java 创建线程_【80期】说出Java创建线程的三种方式及对比

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅. 一.Ja ...

  6. Spark读写Hbase的二种方式对比

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...

  7. Spark提交代码的两种方式

    基于spark1.6测试(虽然很多公司都已经在用2.X了,但是1.6我认为是最经典的版本,CDH最新版本至今默认的spark版本依然是1.6,不过2.X提交方式是基本没有变的) Standalone ...

  8. Spark实现WordCount的11种方式,你知道的有哪些?

    目录 前言 11种方式实现wordcount 方式1:groupBy 方式2:groupByKey 方式3:reduceByKey 方式4:aggregateByKey 方式5:foldByKey 方 ...

  9. Java序列化的几种方式

    概念 序列化:可以将对象转化成一个字节序列,便于存储. 反序列化:将序列化的字节序列还原 优点:可以实现对象的"持久性", 所谓持久性就是指对象的生命周期不取决于程序 原生序列化方 ...

最新文章

  1. keil复制代码乱码_win7系统下Keil复制中文注释到记事本出现乱码的解决方法
  2. 小米6 twrp_小米6刷上统信 UOS 国产系统,操作流畅但安装需谨慎!
  3. javaweb学习总结(二十一)——JavaWeb的两种开发模式
  4. 给定数组 求和等于固定值 算法_别人家的面试题:不可变数组快速范围求和
  5. 滴滴基于 Flink 的实时数仓建设实践
  6. LeetCode——双指针
  7. MySQL 索引优化全攻略
  8. Windows Server 2012 解决无法连接无线网络
  9. 在本地新建分支,以进行功能开发
  10. PHP中define定义的常量如何在smarty模板调用
  11. 苹果ipad怎么刷机_苹果手机:iOS12刷机iOS12正式版刷机教程
  12. abb机器人goto指令用法_详解ABB机器人编程含中英文指令对照
  13. 正则表达式中的?表示匹配前面的正则表达式0次或者1次
  14. 中英文状态的符号转换
  15. SVN :找不到这样的主机
  16. 银行家算法的实验报告
  17. MOVS,LODS,CMPS,SCAS,STOS
  18. 城市餐饮店铺选址分析
  19. 60903鱼植共生缸
  20. 根据指定字母,顺序输出若干相邻字母 C语言

热门文章

  1. pygame.error: font not initialized的解决及init()到底干了什么
  2. CSS单位em是相对于父元素还是当前元素的字体大小?
  3. 得知发行组长老潘今天岗位上最后一天就要离开有感
  4. Linux常用命令集
  5. java高级程序员如何写好简历,一份优秀的程序员简历是什么样的?
  6. unity中的rigibody 和 collider 讲解
  7. SQL基础(一):SQL语法和命令
  8. transform.rotation和GetComponentRigidbody().MoveRotation
  9. 将本地 jar 安装到本地 maven 仓库
  10. c语言求行列式的值原理,新手作品:行列式计算C语言版