Spark RDD存储策略的动态优化

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:lpcumt
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
伴随着日益增长的大数据相关的业务需求,大数据计算在科研领域及企业界都有着广泛的应用,例如数字图像处理、用户需求的预测等等,这些业务需求的实现通常都依赖于例如Hadoop、Spark这类大数据计算框架。这些框架不仅提供了更高效的计算性能,还提供了容错机制以保证高可靠性,以及拥有可扩展能力。除此之外,这些大数据计算框架简化了各种不同业务场景下应用开发人员的开发工作。例如,基于Spark核心代码,Spark提供了MLlib用于机器学习相关的应用程序的开发,以及GraphX用于图计算相关应用程序的开发。性能一直是大数据计算的重要指标之一,也是各类大数据计算框架不断在改进及完善的重要目标。本文提出了一套基于时间成本的对于Spark RDD存储策略的动态优化方案,其目标在于让用户不再过多关心Spark RDD存储策略的细节,减轻用户的负担。同时,也避免了由于用户对于系统硬件资源、应用程序的认知限制及对RDD持久化层级的错误设置导致的性能下降。在Spark中,数据的存储机制以RDD的持久化层级表示,本文提出的优化方案也旨在更有效地使用系统资源,提升应用程序的整体性能。本文提出的优化方案是一个离线的优化方案,一共分为两个阶段:数据采集阶段以及动态优化阶段。在数据采集作业中,主要搜集可以反映RDD特性的相关数据。因为这些数据是RDD相关的,也是系统硬件资源相关的,因此基于这些采集数据的优化是动态的。在数据采集阶段,会对采集到的数据进行预处理,处理结果将作为输入数据提供给动态优化阶段。在动态优化阶段,基于在数据采集阶段搜集到的数据,运行基于启发式算法的优化进程,优化RDD持久化层级。在优化过程中,基于RDD在不同持久化层级下的运行时间、内存使用特性,整个优化进程模拟应用程序的运行,评估整个应用程序的运行时间,不断优化RDD的存储策略。本文通过实验证明了对于RDD存储方案优化的必要性及有效性。
其他文献
三元复合正极材料LiNixMnyCo1-x-yO2(x>0.5)因具备高容量、热稳定性好、对环境友好等优点而成为锂离子电池的研究热点之一。本课题以NaOH为沉淀剂,氨水为络合剂,采用共沉淀法
随着科技的发展,单核处理器难以满足不断增长的计算需求,于是多核技术飞速发展并成为市场主流,任务调度问题是多核实时系统中一个很重要的问题,主流的多核实时系统调度方式主要分为两类:全局调度和划分调度,划分调度由于没有任务迁移引起的开销成为应用中的主流策略。但是现有的研究中针对带有资源访问的任务的划分算法对于任务之间的资源竞争开销计算的优化不足,关于任务资源相似度和负载均衡之间的决策效果较差,因此,设计
王易是晚清民国时期的词学家、词人,学术成果丰硕,影响较大。王易存世词作一百余首,所撰写的《词曲史》是民国时期重要的词学理论成果。然而,一直以来,研究者对于王易的关注度不够,尤其是对其词学理论、词作的考察尚显薄弱。基于此种情况,本论文将在考察王易家世、生平、交游、著述的基础上,着重对王易的词学思想、词体创作进行重点研究,进而判定王易的词学成就,考察王易在民国词史中的地位和影响,同时也为进一步、更全面
随着电力市场的发展,电力系统短期负荷预测将直接影响到电力市场的决策和电网的调度。对于电网而言,精准电力短期负荷预测可以制定有效的发电计划,避免不必要的电能浪费。对
物理方案参数不确定性量化是减小参数不确定性,提升气候系统模式模拟水平的重要方法,但是当前常用的进化算法等在复杂的气候系统模式上的应用需要极高的时间和计算成本,急需
随着网络技术的迅速发展和普及,网络交通监控、信用卡欺诈检测等领域产生了海量的数据流,这些数据流除具有快速海量的特点外,还含多个标记且标记数据大量缺失,标记会随着数据
在移动群智感知(Mobile Crowd Sensing,MCS)系统中,任务分配是系统提供高效可靠感知服务必不可少的过程之一。然而,在大量并发的任务场景中,参与者动态变化的状态与任务特征
研究背景及目的:大段骨缺损的治疗是骨科临床面临的难题,其核心问题是难以获取足量的高活性骨修复材料。选择性细胞滞留技术(selective cell retention,SCR)是贴近临床的组织工程骨构建策略,提高MSCs与材料的粘附效率是提高SCR构建的骨移植物成骨活性的关键。脱钙骨基质(demineralized bone matrix,DBM)是临床常用的SCR富集材料,可通过增加额外粘附位点
组合测试是一种通过检测软件系统因素中所有取值组合来查找故障的软件测试方法。软件的本身因素及其之间的相互作用都可能引发故障,随着技术的不断发展,软件复杂度的持续增加
集成学习是一类非常重要且实用的机器学习方法,但集成学习不是一种特定的机器学习方法,它是通过生成并组合多个基学习算法来完成任务。该工作有效地促进了信息融合、数据建模