随着网络信息技术的不断发展,互联网已经渗透到各行各业,而且互联网用户数目也不断地在增长,这导致了互联网数据的爆发式增长,也为分布式计算提供了新的机遇。MapReduce是Google提出用于处理海量数据的分布式并行计算编程模型,它具有自动并行处理作业,可靠性高及编程简单等特点。Hadoop是基于MapReduce的开源分布式并行计算基础平台,由于定制和使用简单而被众多企业和科研单位用于海量数据的处理和研究。在Hadoop中分别采用HDFS(Hadoop Distributed File System)和MapReduce来存储和处理海量数据。在MapReduce框架中把硬件故障当作常态,因此容错机制是存储和计算健壮性和高效性的保障。推测执行是计算容错的重要手段,它通过找出执行异常慢的任务并将其备份任务放于另一个节点执行,以达到降低任务执行时间及节省集群资源的目的。现有的推测执行策略主要包括基于启发式的LATE(Longest Approximate Time to End)和基于集群成本效益的MCP(Maximum Cost Performance)。这两种策略的实现原理不相同,LATE比MCP实现起来更简单,但效果不如MCP。通过对LATE策略中存在的问题进行总结和分析,针对LATE策略中进行任务剩余时间评估没有考虑系统负载的影响而导致评估结果不准确的不足,提出了系统负载感知的启发式推测执行策略ERUL(Estimate Remain time Using Liner relationship)。ERUL扩展计算密集型任务执行时间同系统负载基本呈线性关系的结论用于任务剩余执行时间的评估,提高了评估的准确度。同时,ERUL还解决了LATE中不能处理Map任务输入倾斜,不能及时发现掉队任务及节点性能评价存在缺陷等问题。实验表明ERUL在任务剩余执行时间评估方面比LATE更精确,同时对集群性能的改善也比LATE更好。对MCP策略执行流程和存在的问题进行深入分析,提出了一种异构环境下的MapReduce推测执行改进策略exMCP(extensional MCP)。MCP模型在对集群资源价值进行计算时没有考虑异构环境下不同节点的Slot拥有不同的价值,因而会导致模型使用时产生差错。同时,MCP中没有对Map任务按照是否满足数据本地化进行分类,这可能导致不满足数据本地化的任务被全部认定为掉队任务等错误。在exMCP中通过考虑Slot价值来计算集群资源价值,同时对Map任务分类独立进行推测执行,另外还对选择备份任务执行节点存在的问题进行了改善。实验结果表明exMCP的推测执行成功率和对集群性能的改善都比MCP更好。
暂无评论