zoukankan      html  css  js  c++  java
  • Spark持久化策略

    spark持久化策略_缓存优化
    persist、cache都是持久化到内存
    缓存策略


    StorageLevel
    _useDisk:是否使用磁盘
    _useMemory:是否使用内存
    _useOffHeap:不用堆内存,找tackyon
    _deserialized:不序列化(序列化可理解为压缩,节省内存磁盘空间,但是消耗CPU)
    _replication:副本数量 默认1份

    默认持久化:只持久化到内存。
    MEMORY_ONLY:有多少存多少,没存进来的重新算
    只存入内存,假设RDD1的数据为1T,内存大小为512G,那么会将RDD中的512G放入内存,下一步操作使用RDD1的数据,生成RDD2,先去内存中找RDD1的数据,会发现存入内存的512G数据,进行计算后生成RDD2,但是RDD1中还有512G数据没有存入内存,生成RDD2的操作会查找RDD1的依赖,如果RDD1之前的RDD有做缓存,那么再缓存中读取,如果没有做缓存,再找之前的RDD,如果都没有做缓存的话,直接去HDFS中读取数据重新计算,最终生成RDD2。

    MEMORY_AND_DISK:内存不够用了就落地到本地磁盘,假设RDD1的数据为1T,内存大小为512G,那么会将RDD中的512G放入内存,剩余的512G会落地到磁盘中。生成RDD2的时候一部分从内存中读取,一部分从磁盘中读取。
    如果计算时间较长,中间结果算起来比较昂贵,此时M_A_D比较合适

    能存在内存中的就尽量存在内存中,如果内存紧张,那就序列化一次M_O_SER

  • 相关阅读:
    linux 文件内容乱码 文件内容转码
    Loadrunner获取响应里面的内容
    定位获取下拉框元素
    RIDE转码问题
    api接口登录及打印返回值
    获取token值
    RIDE安装操作(二)
    from selenium import webdriver 运行报错解决方案
    超声和病理的web实现方案
    QT中字符串和整形相互转化
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/8552267.html
Copyright © 2011-2022 走看看