论文部分内容阅读
大数据时代下数据的处理与分析已成为一个十分重要的环节。为了满足数据处理高时效的需求,基于内存计算的大数据处理系统成为了新的研究热点。现有高性能计算集群由于内存配置相对CPU配置明显不足,当运行在上面的MapReduce系统用来处理数据密集性应用,容易导致不必要的数据溢出到磁盘的I/O操作,内存效率急需优化。当处理大规模的数据集时,分区数量过多,基于哈希的Shuffle机制会导致过多的文件操作和内存的不合理使用。但当分区块过大,任务消耗的内存量变大,容易导致CPU与内存出现协调不一致的性能瓶颈问题。同时每个工作节点处理的中间数据量分配不合理,容易导致负载不均衡,影响系统性能。适用于大数据处理的内存效率优化系统针对MapReduce系统在高性能计算集群中出现的问题,结合内存计算的特性,提出并实现了内存资源高效使用的优化方案,用于构建快速、高效的大数据处理平台。首先,优化系统设计了一种对象复用的Shuffle机制,通过复用文件写句柄及其附属对象有效解决了分区数量过多时内存申请速度过快的问题,确保内存的平稳使用;其次,优化系统建立了一种基于反馈-采样-决策的任务分发机制,有效协调了分区块过大时CPU与内存的使用关系,极大地减少了中间数据溢出到磁盘的I/O开销;最后,优化系统实现了一种内嵌负载均衡器的任务调度机制,确保每个工作节点处理的中间数据量几乎一致,并且最大化地减少网络传输数据量。优化系统提出的内存效率优化方案集成在Spark系统上,实现了对用户的透明,可以完全兼容已有的Spark应用程序。通过典型案例测试,实验结果表明,改进后的Spark系统相比原生系统,在处理大规模数据集时,内存使用效率得到提高,磁盘I/O大量减少,在总的执行时间上有着1.25倍到3.18倍的性能提升。