论文部分内容阅读
近几年来随着大数据技术的发展,Hadoop作为通用的大数据处理平台在大数据应用中扮演的角色日益重要。它提供了分布式文件存储系统HDFS,分布式计算框架MapReduce,以及Hadoop第二代引进的YARN资源管理系统。其中YARN作为独立的资源管理系统可支持多种分布式计算框架运行,YARN中的调度器算法的性能好坏直接决定着集群的性能,如资源利用率,集群吞吐量等。因此对YARN的调度器进行研究有很重要的意义。另一方面,深度学习、机器学习计算任务涉及大量的迭代计算,现如今的训练模型的框架中大多都会利用GPU来加速计算,这使YARN能够支持GPU调度显得很有必要。一方面,本文先研究YARN中自带的Fifo调度器、Capacity调度器、Fair调度器,通过源码分析调度算法,分析各个调度器的优劣势及适用场景。Fifo调度器是早期的调度器,根据应用的先进先出的顺序进行调度;Capacity调度器基于资源容量的大小进行调度;Fair调度器则是根据最大最小公平算法进行调度,尽最大可能使所有的用户公平的使用集群资源。本文提出并实现了一种基于优先级权重的调度器,称之为PWB调度器。队列模型基于Capacity调度器的队列模型,在叶子队列选择应用时综合考虑应用量级、应用优先级、应用等待时间等多种因素,通过权重值来决定应用的调度顺序。另一方面,本文通过研究YARN中的资源模型以及CGroups在YARN中的应用,熟悉YARN如何扩展资源类型以及CGroups如何进行资源限制隔离。在NM侧实现基于CGroups的GPU调度支持。通过英伟达提供的nvidia-smi程序获取节点GPU信息,每个NM节点维护节点的GPU资源信息。在容器执行器启动前,通过基于CGroups的GPU资源处理器来实现GPU分配。最后本文对提出的基于优先级权重的PWB调度器以及对GPU调度支持进行验证实验。对于PWB调度器先做了多组系数实验,实验结果表明设置不同的系数最后应用的调度顺序不同,当希望小量级应用优先执行时则可以提高量级的影响系数。接着将PWB调度器与YARN中自带的调度器做对比实验,最后实验结果表明,PWB调度器总的运行时间与Capacity调度器及Fair调度器差不多,但相比Capacity调度器应用的平均等待时间缩短了17%。