智能RDD管理--用于在Spark中实现高性能内存计算


Intelligent RDD Management for High Performance In-Memory Computing in Spark

最近在研究一些Spark成本优化的东西,看了一些论文稍微总结一下思路,方便思维拓宽和希望与大家交流!

本篇博文参考自:

WWW '17 Companion Proceedings of the 26th International Conference on World Wide Web Companion:
《Intelligent RDD Management for High Performance In-Memory Computing in Spark》


1 文章概述及问题描述

Spark是当下科研界或工业界中普遍使用的内存计算框架,可以通过将访问的数据包装成为弹性分布数据集(RDD),并将这些数据集存储在快速访问的主内存中,以大大加快计算速度。

但是,毕竟我们的计算内存是有限的,而Spark本身不会提供RDD的合理存储机制,除此之外,如果中间的RDD因为一些原因缺失,则会导致该RDD的所在全部计算链条重新计算,这将带来额外的计算和时间成本。

虽然spark内部提供的粗粒度(coarse-grained)checkpoint接口可以让我们对想要保存的RDD数据进行持久化,但是对于日常的应用业务,其逻辑和代码链条较为复杂,而人们都是靠经验去checkpoint一些RDD,很多时候,我们牺牲了磁盘来保证程序的容错性,这种方式都会导致spark执行效率的降低,磁盘IO以及我们分布式存储系统通常也有一定负担。

此外,spark中还存在一个内存回收的问题,如果内存不够用了,spark内部的LRU[2]算法(least recently used)来清楚一些使用频率最小的RDD,但是该算法只考虑了使用频率,并没有考虑该数据分区的关于成本问题的一些因素,例如其计算成本问题,加入后面需要用到它,到底是计算他的成本小还是一直存储到下一次使用的成本小。

因此,本文就是为了解决RDD的合理存储问题,提出** 一个细粒度(Fine-Grained)的RDD-checkpoint和kick-out选择策略,通过该策略,Spark可以智能地选择合理的RDD进行存储,以最大限度地提高内存的使用率 **。

LRU参考:
[2] D. Lee, J. Choi, J. H. Kim, S. H. Noh, S. L. Min,Y. Cho, and C. S. Kim. LRFU: A spectrum of policies that subsumes the least recently used and least frequently used policies. IEEE Transactions on Computers, 50(12):1352-1361, 2001.


2 论文牵扯到的Spark基础

1). RDD
Spark是用于大数据处理的常用内存计算引擎。 Spark中的关键组件是弹性分布式数据集(RDD),它是一种分布式内存抽象,利用RDD进行编程,我们可以以容错方式在大型集群上提交并执行内存中的计算。 RDD利用内存来缓存中间结果,与其他大型数据密集型框架相比,Spark具有巨大的优势,例如。Hadoop的[1]。


** 2). CheckPoint **
checkpoint的目的是用来将某RDD的数据以及元数据信息进行缓存,内存和磁盘均是其缓存的介质对象。一旦RDD被checkpoint,其前面全部的父节点会被祛除,仅保留checkpointRDD作为其父RDD,这样的机制可以减少RDD的链条长度,便于RDD的恢复。同时可以方便用户跨多个计算进行RDD数据的访问。** 但是这样的粗粒度checkpoint会带来一个严重问题,被切掉的依赖链条中的RDD可能在将来会被用到,因此此时spark必须要知道这些RDD的计算信息,以用于恢复**


3 方法概述

本文提出了一个智能的RDD管理方案,以帮助解决长链条RDD问题,同时对性能影响较小,并且该方案可以解决内存空间首先的问题。
首先提出了细粒度检查技术,以避免丢弃高频被使用的的RDD。 这种细粒度的Chekcpoint方法不会立即抛弃该RDD的全部父依赖,而是会去全局判断是否要丢弃。
然后,讨论如何巧妙地checkpoint一些RDD以消除计算开销。
为了解决有限的存储空间问题,提出了一种新颖的kick-out选择方案来对包含宽依赖性的RDDs进行高速缓存。
文中的实验验证部分是基于Spark-1.5.2,并且使用大量数据工作负载,实验表明该方案比baseline实现了高达28.01%的性能提升。


4 细粒度checkpoint

Lineage可以用于恢复RDD,但是对于长链条的RDD,这种恢复是十分耗时的,因此考虑checkpoint的方法来消除这种开销。

一般来讲,checkpoint对于使用频率高的或是长链条的RDD,基于这样的理论,本文提出如下建模公式来有选择的对RDD进行checkpoint:


其中L和C分别表示选择重新计算或是checkpoint达到恢复该RDD的所需时间,w代表故障频率,取值范围为[0,1],如果上式成立,则会进行checkpoint。


5 Kick-Out 选择策略

LRU策略只考虑了时间维度,但是对于复杂长链条的计算,内存空间的利用率应当是又要考虑的,因为长链条带来的最大的问题就是计算开销,尤其是许多的宽依赖意味着这些RDD将来会有较大概率被访问,所以持久化这些RDD可以在一定程度上提高内存的使用率。

5.1 选择策略介绍

主要思想是给具有宽依赖的RDD分配优先级P,优先级决定了使用存储空间的优先级。分配策略如下:

优先级划分

其中L和C就是上面讨论的直接计算和通过checkpoint来计算的时间花费,D代表该RDD的依赖程度(这里文中没有解释太多,我认为依赖程度就是该RDD所依赖的RDD的个数吧),权重就是将其除以最大的值进行进行归一化相加得到,思想还是比较好理解的。

实验验证选取了Stanford和berkStan的graph dataset。实验结果表明最大性能提升28.01%,平均提升13.63%。实验结果如下图:

result.png

6 实验环境

1、4台节点-64GB-13TB
2、Hadoop-2.6.0,Spark-1.5.2
3、数据集:
1)web-Stanford
2)web-BerkStan

至此,整个模型的思路介绍完毕。

我的博客 : https://NingSM.github.io

转载请注明原址,谢谢

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

推荐阅读更多精彩内容