论文部分内容阅读
随着大数据时代的到来,每天产生海量各种非结构化和半结构化的数据,传统的存储模式与计算模式很难及时对这些数据进行存储和处理,因此,MapReduce计算框架应运而出。Hadoop作为MapReduce的开源实现,以其高效性,高容错性,低成本得到广泛应用。但是由于Hadoop1.0存在Master职责过多以及存在单点故障的问题,导致扩展性差和可靠性差,并且不能支持多种计算框架,Hadoop2.0设计了一套资源管理框架YARN,YARN能支持多种计算框架(MapReduce、Spark、Storm等),并且对资源的管理以Container的形式,比Hadoop1.0用Slot的资源管理方式粒度更细,因此资源的利用率会更高。YARN以其高扩展性,高可靠性,资源利用率高,支持多种计算框架的特点成为当前流行的资源管理框架。 但当在YARN上运行MapReduce程序时,非本地性的MAP任务和REDUCE任务都需要从其他节点上去传输数据,因此会占用网络资源,而YARN中的资源抽象是Container,Container是CPU和内存的封装,并没有包含网络。由于YARN没有对网络资源进行管理,YARN对于MapReduce程序的调度会存在网络资源分配不均匀的问题。 针对上述问题,提出了基于节点网络流量的负载均衡调度策略。该策略通过监控每个节点上的实时网络流量,在调度产生时,将当前节点上面的网络负载与整个集群中的网络流量负载作比较,选择对应的应用程序的对应任务来分配资源,使得集群上节点网络负载都比较平均。综上所述,网络负载均衡调度策略能使集群网络资源分配的更加均匀,减少作业运行时间,提升集群的资源利用率。