Spark 6. RDD 持久化

RDD 持久化

原文地址: http://spark.apache.org/docs/latest/programming-guide.html
仅限交流使用,转载请注明出处。如有错误,欢迎指出!

Henvealf/译

Spark中一个很重要的能力就是可以将一个数据集通过操作持久化(或者说缓存)到内存中。实例化每一节点会存储数据集的任何分区的内容,这样其他的 action 就能在内存中重新利用并执行计算。这样就能让之后的 action 操作变得飞快。这也是 迭代逻辑和快速的交互 所使用的关键工具。

使用 persist() 或者 cache() 函数来标记一个 RDD 是持久化的。当这个 RDD 在首次被一个 action 计算后,他就会一直保持在内存中。Spark 的缓存是具有容错能力的,如果 RDD 中的任何分区丢失了,他会重新调用生成该 RDD 的transformations以修复。

另外,每一个持久化的 RDD 能够使用不同的存储水平来持久化。使用 StorageLevel 对象在 persist 上。而 cache() 函数是持久化在内存(StorageLevel.MEMORY_ONLY)的快速写法。

所有的持久化水平如下:

MEMORY_ONLY 

MEMORY_AND_DISK 

MEMORY_ONLY_SER
(Java and Scala) 

MEMORY_AND_DISK_SER
(Java and Scala) 

DISK_ONLY 

MEMORY_ONLY_2, MEMORY_AND_DISK_2, 等等. 

OFF_HEAP (试验中) 

注意: 在 Python 中,存储对象总是使用 Pickie 库来进行序列化,所以你不需要忧虑是否使用序列化水平。这样做时为了避免 shuffle 过程失败后重新计算所有的输入。这里建议用户希望重新利用 RDD时 使用 presist()。

选择使用何种水平的存储

Spark 的存储水平的选择需要在 内存使用率 与 CPU效率之间进行衡量选择,这里建议使用下面的流程来选择他:

  • 如果你的 RDDs 能够被内存容纳,就使用 MEMORY_ONLY,会得到很高的 CPU 效率。

  • 如果不是,就使用 MEMORY_ONLY_SER 并选择一个速度快的序列化库,来让对象在足够省空间的同事,能够得到理想的存取速度(Java and Scala)。

  • 除非计算你的数据集的方法开销很大,或者他们会过滤大量的数据,就不要溢写到磁盘中。不然,重新进计算一个分区会和从磁盘中读取的速度一样慢。

  • 如果你想很快的从失败中恢复,就需要使用备份存储。所有的存储水平都会通过重新计算出丢失的数据提供充分的失败容忍力,只有使用备份的时候不需要重新计算。

去除数据

Spark 会自动使用最近最少使用算法来对每个节点上的缓存的使用进行自动的监视。如果你想手动的立刻的去除缓存,就使用 RDD 的 unpersist() 函数。

End!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容