美文网首页
spark的存储管理中的RDD持久化

spark的存储管理中的RDD持久化

作者: scott_alpha | 来源:发表于2019-10-12 13:54 被阅读0次

    1.RDD持久化选项:
    memory_only:以非持久化的方式存在于内存(默认):
    memory_and_disk:以非持久化的方式将RDD以Java对象的方式存在于内存中,当无法容纳时将其存储于磁盘。
    memory_only_ser:以序列化的方式将RDD存于内存
    disk_only:将RDD分区存于磁盘。
    提交作业首次执行时,我们可以调用RDD提供的persist或者cache方法进行操作,再次使用该RDD时可以直接从之前的缓存区获得而无需再次进行计算。
    2.具体选项
    内存缓存:RDD中的每一个分区所对应的数据块会被内存缓存memorystore管理,缓存在内部是一个哈希表,数据块名称为键,值为数据块内容。当内存达到我们设置的阈值时,会执行一些释放内存空间的策略,丢弃数据块或者将数据块存储到磁盘上。若丢弃即直接删除数据块,是否影响spark程序的错误恢复机制要看依赖关系的可回溯性。若删除的RDD的父RDD是可回溯的,则删除后不影响错误恢复,如果此RDD本身就是第一个RDD,且数据无法被回溯,则程序会出错。
    3.磁盘缓存
    首先数据块会被放在磁盘中我们设置的目录下。
    其次,在磁盘中文件的名字与数据块名的映射关系是通过哈希算法得到的。

    相关文章

      网友评论

          本文标题:spark的存储管理中的RDD持久化

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