美文网首页
Spark性能优化之RDD持久化或Checkpoint

Spark性能优化之RDD持久化或Checkpoint

作者: 有一束阳光叫温暖 | 来源:发表于2019-02-15 11:51 被阅读0次
对于多次操作的RDD进行持久化和Checkpoint操作

1.使用序列化的持久化级别

除了对多次使用的RDD进行持久化操作之外,还可以进一步优化其性能。因为很有可能,RDD的数据是持久化到内存,或者磁盘中的。那么,此时,如果内存大小不是特别充足,完全可以使用序列化的持久化级别,比如MEMORY_ONLY_SER、MEMORY_AND_DISK_SER等。使用RDD.persist(StorageLevel.MEMORY_ONLY_SER)这样的语法即可。
这样的话,将数据序列化之后,再持久化,可以大大减小对内存的消耗。此外,数据量小了之后,如果要写入磁盘,那么磁盘io性能消耗也比较小。
对RDD持久化序列化后,RDD的每个partition的数据,都是序列化为一个巨大的字节数组。这样,对于内存的消耗就小的多了。但是唯一的缺点就是,获取RDD数据时,需要对其进行反序列化,会增大其性能开销。
因此,对于序列化的持久化级别,还可以进一步优化,也就是说,使用Kryo序列化类库,这样,可以获得更快的序列化速度,并且占用更小的内存空间。但是要记住,如果RDD的元素(RDD<T>的泛型类型),是自定义类型的话,在Kryo中提前注册自定义类型。

相关文章

  • Spark性能优化之RDD持久化或Checkpoint

    1.使用序列化的持久化级别 除了对多次使用的RDD进行持久化操作之外,还可以进一步优化其性能。因为很有可能,RDD...

  • 面试 | Spark知识点@20190105

    Spark中持久化和容错checkpint的区别 checkpoint是考虑安全性,RDD可以使用persist或...

  • spark checkpoint 和 RDD

    spark checkpoint 可以切断血缘关系,持久化再hdfs上,在checkpoint 之后的RDD后就无...

  • Spark 性能优化:重构 RDD 及 RDD 持久化

    在写 Spark 的应用时,应该尽量避免这两种情况: 1,几个功能明明可以在一个算子操作中完成,为了代码清晰,把这...

  • RDD持久化

    RDD持久化 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点...

  • Spark RDD 持久化

    RDD Persistence Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久...

  • 目录

    Spark之参数介绍 Spark之性能优化2.1. 官方性能优化指南2.2. Spark性能优化指南——基础篇2....

  • Spark RDD 之持久化

    1. Background 当我们需要多次使用同一个 RDD 时,如果简单的调用 Action 操作,Spark ...

  • Spark相关文章索引(3)

    环境部署 Spark2.1.0的Standalone模式部署 基本常识 spark中的rdd的持久化 Spark入...

  • Spark(十三) Spark性能调优之RDD持久化

    一、背景理念 1,RDD架构重构与优化 尽量去复用RDD,差不多的RDD,可以抽取称为一个共同的RDD,供后面的R...

网友评论

      本文标题:Spark性能优化之RDD持久化或Checkpoint

      本文链接:https://www.haomeiwen.com/subject/elrpeqtx.html