论文部分内容阅读
2006年,Google、Amazon等公司提出了云计算的概念,通过云计算,用户可以根据流量负载快速发布和调整应用资源。近些年,虚拟化技术和容器技术的快速发展,为上层应用提供了可靠而便捷的资源;物联网、社交网络等产生了大量的数据,传统的数据处理平台已经难以支撑。Hadoop的诞生使得高效地处理海量数据成为了可能。目前,Hadoop已经广泛应用于工程领域,并且展现了出色的性能。MapReduce作为其核心组件,虽然已经获得了大量学者和工程师的注意,但是在异构环境中仍然面临着负载倾斜导致任务执行不够高效的问题,并且目前为止,还没有有效的解决方案可以准确估计实时机器负载和任务的执行时间。另外,高效准确的MapReduce资源分配对于优化节点负载以及达到节点负载均衡的目的至关重要。本文针对异构环境中MapReduce资源调度机制的负载优化方法进行了研究。具体研究内容如下:(1)基于实时资源情况,提出了自适应推测执行算法(ASE)。ASE通过多级索引存储机制,对不同节点在不同阶段的运行信息进行分类存储,并结合线性回归算法,实现对当前任务剩余运行时间和备份任务所需的运行时间预测。通过考虑实时集群运行状况,对当前任务实施不同的策略以加快作业的执行速度。最后,在负载状况不同的集群中,本文对ASE的性能进行了评估。(2)基于双层资源调度模型,提出了二层调度算法(SSA)以改善Hadoop双层调度模型中第二层的调度过程。建立了时间预测模型PMK-ELM,并评估其预测精度。在此基础之上,PMK-ELM被加入到SSA调度过程中。Map任务运行后,通过预测模型计算中间数据分配到不同Reducer所需要的执行时间。通过使用多目标优化算法,达到节约作业执行时间和结果数据相对分布均匀的目的。结合上文提出的自适应推测执行策略,从计算和存储两方面,综合评估负载优化方案的作业执行时间以及磁盘空间占用比,达到了负载优化的效果。