随着网络信息技术的不断发展,互联网已经在各行各业渗透,而且互联网的用户数目也在不断地增加,这使得互联网数据形成了爆发式地增长,对分布式计算而言也是新的机遇。mapreduce是由Google提出针对海量数据进行处理的分布式并行计算编程模型,它具有并行自动处理作业,编程简单及可靠性高等特点。Hadoop是基于mapreduce的分布式并行开源计算平台,由于其定制和使用简单的特点而被许多科研单位和企业用于海量数据的研究和处理。在Hadoop中分别应用 mapreduce 和 HDFS(Hadoop Distributed File System)来处理和存储海量数据。推测执行是计算和存储高效性和健壮性的保障。它通过执行找出异常的慢任务并将其放于另一个节点备份执行,以达到节省集群资源和降低任务执行时间的目的。推测执行策略现在主要的有基于启发式的LATE和基于自适应mapreduce的SAMR。通过对LATE策略中存在的问题进行总结和分析,LATE推测执行算法只是通过比较某任务的进度速率和所有任务的平均进度速率的大小来决定是否进行推测执行,却没有考虑资源的消耗和负载的变化,于是(Speculative Execution for Benefit of Cluster,SEBC)推测执行算法从集群收益上进行了考虑,对资源进行建模,在考虑节点处理任务类型的基础上进行推测执行。实验表明SEBC能够更加有效地降低作业执行时间及提高集群性能。对SAMR策略执行流程和存在的问题进行深入分析,提出了一种基于随机森林的推测执行算法(Speculative Execution based on Random Forest,SERF),该算法在以YARN为主的新一代Hadoop平台基础上进行建模,运用随机森林机器学习算法对整体集群进行预测,并且把Map任务分成了 nodeLocal,rackLocal,offSwitch三种类型,简单有效地对3类任务执行信息进行了统计和分析,从而对计算节点处理任务的性能有了更加精准的定位,通过实验表明不仅保证了整体集群的收益,而且SERF推测执行算法比SAMR推测执行算法更加精准。
暂无评论