论文部分内容阅读
随着技术的快速发展,互联网的使用人群急剧增长,数字化信息呈爆炸性增长,大数据的分析处理成为研究的热点。仿照Google公司MapReduce计算模型和GFS文件系统设计思想实现的Hadoop开源软件迅速发展并成为大数据处理的首选工具。Hadoop平台为用户提供了方便的编程接口并合理安排用户作业的调度执行,用户只需专注于map和reduce处理过程。作业调度器合理安排作业任务的执行来合理利用集群计算资源,是Hadoop平台的核心模块之一,目前有FIFO调度算法、计算能力调度算法和公平份额调度算法三种实现供选择使用。FIFO调度算法思想简单,易于实现,但不支持多用户多作业共享集群资源,计算能力调度算法和公平份额调度算法实现了多用户多作业对集群资源的共享,提高系统吞吐率,降低作业响应时间,但需要系统管理员对集群资源状况和用户和作业类型有充分了解从而合理进行各项配置。本文在介绍国内外Hadoop作业调度研究现状的基础上,分析Hadoop现有各调度算法设计思想与调度策略并针对公平调度算法中slot资源分配方法提出改进,然后分析了各调度算法的优缺点并指出现有调度算法难以正确配置的不足,提出了基于贝叶斯分类的作业调度算法,该算法通过贝叶斯学习与分类让作业在计算节点上的运行尽可能使计算节点不过载,在此基础上,对作业进行资源需求分类预处理,使CPU密集型作业和I/O密集型作业得到合理调度,从而更高效利用计算资源。主要研究内容如下:(1)分析Hadoop中FIFO调度算法、计算能力调度算法和公平调度算法的算法核心思想、使用配置并给出了伪码和流程图形式的算法描述、复杂度分析和算法特点及优缺点分析。同时,对公平调度算法的slot资源分配方法进行了改进,在原有slot资源分配方法基础上增加对剩余slot资源的尽可能平均分配,使得各资源池获得更为公平的份额。(2)为克服使用现有调度算法时难以正确配置的不足,提出基于贝叶斯分类的作业调度算法,该算法通过分析作业任务执行历史信息将作业对资源使用的特征和计算节点的资源状态特征构造贝叶斯分类器,在学习作业任务执行时资源使用历史信息将作业在某计算节点分为可调度和不可调度两类,使得作业任务在计算节点上的执行尽可能不使计算节点过载,从而提高调度准确率并使得计算资源得到合理使用。(3)为进一步提高计算节点的资源使用率,将作业按照资源需求类型情况分为CPU密集型作业和I/O密集型作业的预处理,进行分类调度使得计算资源得到更充分的利用。(4)结合实验对该算法的作业任务调度准确率、作业响应时间、集群资源利用率等性能指标做出评估并与现有调度算法进行比较分析。