论文部分内容阅读
分布式计算框架为各领域大数据应用推广提供了计算平台,Hadoop下的MapReduce框架为批量数据的分布式计算提供了有效途径。然而,其大量的I/O存取开销降低了数据计算处理效率,不能满足高效、实时数据处理需求,Spark计算框架应运而生。Spark是专为大规模数据处理而设计的快速通用并行计算框架,它具有基于内存计算,高容错及高可伸缩性的特征。该计算框架采用了RDD(Resilent Distributed Datasets,弹性分布式数据集)对数据进行处理,数据处理主要通过内存迭代计算完成,能极大地提高计算效率。论文针对Spark计算框架中基于RDD内存计算模型存在的问题,主要完成了如下工作:1.针对RDD内存迭代计算过程中序列化存储带来计算效率低下问题,提出了一种基于算子的序列化存储策略。该策略根据算子种类、数据集大小、RDD执行效率等因素建立RDD归一化权重模型,从而得出序列化存储集合,在内存不足时选择有更多计算价值的RDD保存在内存中,通过与Spark中默认的序列化存储机制做对比,实验结果表明,该存储策略能够提高任务计算效率,提升节点内存利用率。2.针对单个节点或多个节点内存无法存储所有中间数据导致整个集群计算效率低下问题,进一步提出了全局序列化存储策略。该策略的思想是将无法缓存在集群的数据以离线(OFF_HEAP)方式存储在分布式缓存系统Tachyon中,通过设计RDD数据集的缓存接口,实现内存资源匮乏时自动转存Tachyon的目的,最大化的RDD内存计算,提升整个计算框架的处理能力。实验结果验证了全局序列化存储策略的有效性。综上所述,在Spark计算框架中,内存的序列化存储方案是影响Spark处理能力的关键因素,对其改进优化能够有效提升Spark并行计算系统的整体性能。