基于权值的Hadoop调度算法改进与实现

合集下载

Hadoop集群公平调度算法的改进与实现

Hadoop集群公平调度算法的改进与实现

摘 要 : d o 作 为 M aReu e 开 源 实现 被 越 来越 多的 企 业使 用 。 但 是 当 Hao p 群 中 出现 较 多的 小作 业 时 , 用 其 内 置 的 调 Ha o p p dc 的 do 集 使
度 算法就会 降低 整个 系统 的吞吐 率I 。该文针对这 个不足 , 出了基 于公 平调 度的延 时调度 算法。通过设 定一定的延 时来保证 数 提 据 的本 地性 , 实验结果表 明改进 的调度算 法可 以提 高整个 系统的吞吐 率。
C mp tr n we g n eh ooy电脑知识与技术 o ue o l ea dT cn l K d g
Vo., ., a u r 01 1 No 1 J n ay2 2 8
Hdo a o p集群公平调度算法的改进与实现
李鑫 张 ,鹏
( 西安 建筑科技 大学 , 陕西 西安 7 0 5 ) 1 0 5
LIK i n,ZH AN G n Pe g
( ’nUnv r t f c i cu ea dTe h oo y Xia 0 5 , ia Xia iesyo Arht tr n c n lg , ’D71 0 5 Chn ) i e
Abs r c :H a ta t doo si r ai l i g o ntr rss a a p i nc e sngy usn f r e e p e s n ope s c m pln ai n fM a l. d e i n our e i a t to o pqe uc .Butw h n H a op cuse soc u e do l t r c r
出的这两种新 的调度算法并不能保证 系统 较高的吞吐率 。针对 由小作业 引起的吞吐率下降 , 采用一种作业延时分配 的策 略可以有

毕业论文 Hadoop云计算平台作业调度算法的研究

毕业论文 Hadoop云计算平台作业调度算法的研究

摘要数据的指数级增长向世界互联网巨头Google、Yahoo、Amazon和Microsoft 等这些处于市场领导地位的公司提出了挑战,它们需要分析TB级和PB级的海量数据以发现有价值的信息推荐给那些有潜在需求的人群。

现有的工具正变得无力处理如此大的数据集,Google率先推出了MapReduce编程模型,这是Google 公司为了在廉价的计算机集群上来存储并处理PB级的数据而提出的一种解决方案。

这一解决方案引起了学术界和工业界的广泛关注,因为许多企业同样面临数据膨胀的挑战,一些开源软件诸如Hadoop等给这些企业带来了希望,使它们能够在廉价的计算机集群上存储海量数据,并能够运用MapReduce的思想并行处理这些海量数据,为它们节约了大量的计算以及存储成本。

由于现有的Hadoop集群中包含各种类型的作业,有些作业对完成时间没有要求,而某些作业的完成时间过长时有可能给企业带来损失,为此本文着重研究了集群中各种作业的调度执行流程,分析了MapReduce现有的调度机制,本文针对目前调度算法不能支持对时间紧迫性要求较高的作业的需求,对作业调度算法进行了相应的改进,设计并编写了一个双队列的作业调度器,并研究了集群中慢节点的判定方法、推测执行任务的选定方法,以将推测执行的任务尽量分配给快节点执行,最大化的减少集群中资源的浪费,更好地满足用户的需求。

最后,我们通过搭建Hadoop集群对编写的双队列调度器的性能进行测试,验证了改进后调度算法的正确性,在集群中有各种类型的作业时,该调度器能够优先执行一些紧迫性要求较高的作业,以使它们尽早地完成,提高了集群资源的使用率,从而满足各种用户的需求。

关键词:Hadoop;作业调度;云计算;推测执行任务AbstractThe giant companies of the Internet, such as Google, Yahoo, Amazon and Microsoft and so on, have large amounts of data. The exponential data bring out many problems, so they have to discover the new technologies to anaylyze TB and PB level mass data to achieve useful information. The message is useful to those companies to find the popular books and musics, and recommend the popular news and books to the potential customers. But, the existing tools are becoming unable to handle such large data sets. Google, the first company who provide the MapReduce programming model and the model is able to process the data of PB levels in inexpensive computer clusters parallelly. This solution has attracted many companies in academical and the industrial, because many companies face the same challenge of data expansion problems. The problem was that many companies didn’t have the ablity to develop theirs own tools. Some opensource software, such as Hadoop, OpenStack and so on, offer promising hope those companies, and the companies can store huge amounts of data on inexpensive computer clusters, and be able to use the idea of MapReduce parallel processing of these massive data , as they save a lot of computing and storage costs.As the existing Hadoop cluster contai ns various types of jobs, some jobs’ completion time is not required, but others must finish in the given time to reduce some losses of the company, for which this article focuses on the various operating cluster scheduling the execution flow, analyzed existing MapReduce scheduling technology, and the paper find that the current scheduling algorithms can not support the higher requirements for time-critical jobs, so the job scheduling algorithms have some room to improvement, so we designd and implemented a double queue job scheduler, and studied the slow node cluster determination method, besides, we study the slow tasks which influence the jobs’ finish time. The task will be setup a speculate task in other node to speed up the task. The purpose of the improvement is to reduce the waste of resources in the cluster, and fufill the needs of the users.And finally, we set up a Hadoop cluster with our double queue scheduler to verify the performance of the improved scheduling algorithm, there are various types of jobs in a cluster, the scheduler can perform better when the cluster has the deadline jobs, and it can speed up the job’s finish time so that they can improve the utilization of resources in the cluster to meet the needs of various users.Keywords: hadoop; job scheduling; cloud computing; specutive task目录摘要 (I)Abstract (II)第1章绪论 (5)1.1 选题背景 (5)1.2 国内外研究现状 (6)1.3 论文研究内容 (7)1.4 论文组织结构 (9)第2章Hadoop开源云计算平台 (6)2.1 Hadoop平台背景 (10)2.1.1 Hadoop简介 (10)2.1.2 应用场景 (11)2.2 Hadoop平台核心组件 (12)2.2.1 Hadoop分布式文件系统 (12)2.2.2 Hadoop分布式并行计算框架 (13)2.3 本章小结 (15)第3章Hadoop平台下作业执行流程的研究 (16)3.1 作业的提交及其初始化 (16)3.2 作业调度概述 (17)3.3 Hadoop平台现有作业调度器研究 (18)3.3.1 FIFO调度器 (18)3.3.2 计算能力调度器 (19)3.3.3 公平份额调度器 (19)3.4 本章小结 (20)第4章Hadoop平台下作业调度算法的分析与优化 (21)4.1 Hadoop集群中各种资源及其调度机制 (21)4.2 推测执行任务以及其优化 (21)4.2.1 现有推测执行任务选定标准的不足 (22)4.2.2 改进后推测执行任务选定标准 (23)4.3 集群中慢节点的选定方法 (23)4.4 作业调度的优化 (25)4.4.1 选择任务的策略 (25)4.4.2 支持软实时调度的双队列作业调度器 (26)4.4.3 作业初始化后的任务选择策略 (30)4.5 本章小结 (33)第5章实验与结果分析 (34)5.1 实验平台与配置 (34)5.1.1 SSH、JDK以及Hadoop的安装与配置 (34)5.1.2 Hadoop的完全分布式配置 (36)5.2 实验结果与分析 (38)第6章结论与展望 (40)6.1 本文总结 (40)6.2 工作展望 (42)参考文献........................................................................................ 错误!未定义书签。

Hadoop中作业调度算法的研究与改进

Hadoop中作业调度算法的研究与改进

Hadoop中作业调度算法的研究与改进摘要近年来,随着MapReduce分布式计算框架的提出,一场席卷全球的变革正在互联网领域内悄然发生。

作为MapReduce的开源实现,Hadoop分布式系统得到了国内外各大互联网公司的广泛应用。

多用户共享式集群环境是Hadoop系统应用的典型场景。

其中,Hadoop 系统下作业调度器性能的优劣,即能否在保证作业调度过程公平性的同时最大限度的提升共享集群的整体吞吐效率,是决定Hadoop系统能否充分发挥分布式计算优势的关键。

目前Hadoop下已有的各种作业调度器无一例外的都是基于各种队列进行作业调度的。

其本质是一种“基于队列”的贪心算法,即在不了解共享集群全局信息的情况下,就“草率”的以实现作业任务“本地性执行”最大化为目的进行作业任务调度。

共享集群的整体吞吐效率往往在片面追求任务执行本地性的过程中被消耗。

本文为了克服“基于队列”贪心算法的弊端,在Hadoop下的作业调度器中引入了“最小代价流图”的思想,提出了“基于最小代价流”的作业调度算法,并针对在多用户共享式集群环境下作业调度过程如何进行“流图”建模的问题,进行了系统、详细的理论研究。

本文还在理论建模基础上实现了一个Hadoop分布式系统下的、“基于最小代价流”的作业调度器。

通过与Hadoop下已有作业调度器进行比较实验,本文验证了在多用户共享式集群环境下,“基于最小代价流”的作业调度算法在保证作业调度过程公平性的同时,对于提升共享集群整体吞吐效率方面性能的有效性。

关键词:作业调度器,MapReduce,基于队列,Hadoop,最小代价流THE RESEARCH AND IMPROVEMENT OF JOB SCHEDULING ALGORITHM UNDER HADOOPABSTRACTIn recent years, an world-wide revolution has taken place in the Internet area after Google proposed to the public the MapReduce distributed computing framework. As the open source implementation for MapReduce, Hadoop distributed system has been used in practice widely throughout major Internet companies home and abroad. Especially, the multi-user shared cluster scene is one of Hadoop’s typical application contexts. And the key to the maximization of the distributed computing advantage is the actual performance of the job scheduler under Hadoop. In other words, everything will be ok if the job scheduler could promote the whole cluster throughput while ensuring the job scheduling fairness.All the current job schedulers under Hadoop are line-based, the essence of which is a greedy algorithm. It makes job scheduling decision very curtly in aim of the maximization for task locality executing, when only grasping some local information about the shared cluster. The whole cluster throughput would usually be consumed in excessive pursuit of task locality executing. This paper brings the “min-cost flow graph” concept into the job scheduler mechanism under Hadoop, proposes the “min-cost flow” based job scheduling algorithm, and makes a detailed theory research on how to model as a flow graph the job scheduling process upon a multi-user shared cluster in aim of overcoming shortcuts of line-based greedy algorithm. Furthermore, this paper also implements a “min-cost flow” based job scheduler system upon the Hadoop distributed computing platform on the basis of theory modeling.By deploying comparative experiments between the “min-cost flow” based job scheduler and Hadoop’s existing job scheduler, it is proved that “min-cost flow” based job scheduling algorithm indeed improve thewhole cluster throughput efficiently while offering the guarantee for the job scheduling fairness under multi-user shared cluster environment.KEY WORDS: job scheduler, MapReduce, line-based, Hadoop, min-cost flow目录摘要 (I)第一章绪论 (1)1.1. 课题背景及意义 (1)1.2. 研究现状 (2)1.2.1. FIFO(First In First Out)调度 (2)1.2.2. HOD(Hadoop On Demand)调度 (3)1.2.3. 公平调度器(Fair Scheduler) (3)1.3. 论文内容与研究点 (4)1.3.1. 调度算法建模 (4)1.3.2. 作业调度器的实现 (5)1.3.3. 验证作业调度器的调度效果 (5)1.4. 论文结构 (5)第二章“基于最小代价流”作业调度算法的理论研究 (7)2.1. Hadoop已有作业调度器存在的问题 (7)2.2. “基于最小代价流”作业调度算法的思想 (8)2.3. 最小代价流图 (9)2.4. 对作业调度过程建模 (9)2.5. 构造最小代价流图 (13)2.5.1. 计算作业的最小资源配额和公平资源份额 (13)2.5.2. 对作业调度场景进行数学建模 (15)2.5.3.任务节点 (16)2.5.4. “调度不执行”节点 (17)2.5.5. X节点 (17)2.5.6. 机架节点 (18)2.5.7. 集群节点 (18)2.5.8. Sink节点 (18)2.5.9. 作业调度方案的解析 (18)2.5.10. 计算流图的最小代价解 (19)第三章“基于最小代价流”作业调度器的实现 (23)3.1. Hadoop下作业调度器的实现机制 (23)3.2. “基于最小代价流”作业调度器的实现细节 (23)第四章对“基于最小代价流”作业调度算法的实验验证 (27)4.1. 实验集群配置信息 (27)4.2. 实验应用 (28)4.2.1.Grep (29)4.2.2.WordCount (29)4.2.3.Sort (30)4.3. 实验部署实施 (30)4.3.1.应用实例 (30)4.3.2.实验数据 (31)4.3.3.实验考察指标 (32)4.3.4. 实验部署实施 (34)4.4. 实验结果 (35)4.4.1. 实验结果展示 (35)4.4.2. 实验结果分析 (38)第五章总结与展望 (42)5.1. 论文工作总结 (42)5.2. 下一步研究方向 (43)参考文献........................................................................................ 错误!未定义书签。

改进的Hadoop作业调度算法

改进的Hadoop作业调度算法

改进的Hadoop作业调度算法冯兴杰;贺阳【期刊名称】《计算机工程与应用》【年(卷),期】2017(053)012【摘要】Distributed cluster has the problem of load balancing, and the Hadoop does not take into account the differences in the performance of the nodes. Although it has a load balancing mechanism, the effect is not ideal. As a result, there is often a load imbalance in the process of running. In view of the above problem, this paper has in-depth analysis of the Hadoop source code, to clarify of hadoop principle, and improves Hadoop task scheduling in Yarn which is resource management mechanism of Hadoop. Then establishes new task scheduling rules, and also proposes a performance evalua-tion index for each node, performance evaluation includes dynamic performance and static performance. On the basis of this, this paper improves FairScheduler algorithm of Yarn, and forms a scheduling algorithm considering the performance of nades. To recompile the Hadoop source code, and comparative experiment which carries out on the Hadoop platform, and proves the performance index of the join node can effectively solve the problem of Hadoop load balancing, greatly improves of running efficiency on Hadoop.%分布式集群普遍存在负载均衡问题,而Hadoop没有考虑到节点间性能的差异.虽然有负载均衡机制,但是效果不太理想,因此运行过程中经常会出现负载不均衡的情况.针对如上问题,深入分析了Hadoop源代码,理清了Hadoop的运行原理,在Hadoop资源管理机制Yarn中改进了Hadoop任务的排序,建立了新的任务排序规则,提出了对各节点性能评价的指标,分为动态性能指标和静态性能指标.在此基础上对Yarn的FairScheduler算法进行了改进,形成了考虑节点性能的调度算法.重新对Hadoop源码进行了编译,在所搭建的Hadoop平台上进行了对比实验,证明了加入节点性能指标有效解决了Hadoop负载均衡问题,对Hadoop的运行效率有了很大提高.【总页数】7页(P85-91)【作者】冯兴杰;贺阳【作者单位】中国民航大学计算机科学与技术学院,天津 300300;中国民航大学计算机科学与技术学院,天津 300300【正文语种】中文【中图分类】TP302.7【相关文献】1.MapReduce在Hadoop平台下作业调度算法的改进和实现 [J], 解慧娟2.改进人工鱼群算法在Hadoop作业调度算法的应用 [J], 吉鹏飞;齐建东;朱文飞3.基于节点性能的Hadoop作业调度算法改进 [J], 冯兴杰;贺阳4.一种Hadoop中基于改进遗传算法的作业调度算法 [J], 徐肖;胡吉明5.Hadoop平台中作业调度算法分析与改进研究 [J], 陈新因版权原因,仅展示原文概要,查看原文内容请购买。

基于Hadoop平台的MapReduce模型任务调度算法的研究与改进

基于Hadoop平台的MapReduce模型任务调度算法的研究与改进

1441 引言随着计算机与网络技术的发展,通过网络进行传输、处理的数据流急剧增加,这也给传统的计算模式带来极大的挑战,在此情形下,云计算平台以强大的计算机能力和低廉的实现代价得到了广泛的应用。

MapReduce是Google在2004年提出的用于处理海量数据的一个高效的并行计算模型,这种模型向程序员屏蔽了复杂的内部细节,并提供了简单的编程接口,这样大大缩短了分布式程序员的开发周期,因此得到广泛应用。

而Hadoop作为MapReduce的开源实现,它提供了一个高可靠性、高容错性、良好的扩展性的分布式文件系统,因此被诸多企业应用于数据的存储与处理中。

MapReduce的任务调度算法对Hadoop平台的性能有着非常重要的影响,但是,在实际环境中,MapReduce的任务调度依旧存在着不少的缺陷,因此许多学者与组织在此课题上做了不少的研究。

2 研究进展分析在Hadoop平台中,机群节点数通常很多,因此,数据本地性是调度算法所要考虑的一个非常重要的指标,因为数据在网络中传输需要时间,且在不同机架之间传输需要的时间更多,从而会导致作业的执行周期变长,同时也会增加网络传输的开销。

MateiZaharia等人提出的延迟调度算法(Delay Scheduler)是目前研究的热点,该算法以牺牲公平性和响应时间来最大限度的保证作业在本机节点上被执行,并且设定一个时间阈值,在时间阈值内,让非本地任务进行等待。

因此,当集群中大部分作业为小作业时,该算法可以大大提高数据本地性。

针对该算法中时间阈值的设定,文献[1]和文献[2]通过节点负载量和节点释放速度进行分析,提出在运行中自适应调整时间阈值。

以上研究都是提高Map阶段数据的本地性。

综上所述,许多研究学者为了提高Hadoop系统的各方面的性能,围绕MapReduce作业调度算法进行了大量的研究与改进,然而,其中大部分对Reduce任务的调度算法的研究较少。

同时,他们更多考虑的是机群中节点具有相同处理能力的同构环境,从而限制了调度算法的应用范围。

基于机器学习的Hadoop集群资源调度算法研究

基于机器学习的Hadoop集群资源调度算法研究

基于机器学习的Hadoop集群资源调度算法研究引言随着大数据时代的到来,数据处理的需求也呈现出爆发式增长。

Hadoop作为一种大规模分布式计算框架,被广泛应用于处理海量数据。

然而,随着数据规模的增加,Hadoop集群的资源调度成为一个具有挑战性的问题。

传统的资源调度算法在面对大规模集群的复杂运算问题时,无法提供高效的解决方案。

为了解决这一问题,基于机器学习的Hadoop集群资源调度算法应运而生。

一、Hadoop集群资源调度的挑战资源调度是Hadoop集群中至关重要的一环,它涉及到任务的分配和调度,争取充分利用集群资源以提高整体的计算效率。

然而,由于Hadoop集群的规模庞大、任务种类繁多,传统的资源调度算法面临着以下挑战:1. 复杂的任务关系:Hadoop集群中的任务通常存在着复杂的依赖关系,需要考虑任务之间的先后顺序和数据依赖关系。

传统的调度算法无法兼顾各种任务之间的关系,导致调度效率降低。

2. 动态变化的工作负载:Hadoop集群中的工作负载通常是不稳定的,会随着时间变化而动态调整。

传统的调度算法无法进行实时的资源分配和调度,导致资源利用率低下。

3. 高计算复杂度:随着集群规模的增大,任务数量和计算量都呈指数级增长。

传统的调度算法在面对大规模集群时,往往需要耗费大量的时间和计算资源,无法提供高效的解决方案。

二、基于机器学习的Hadoop集群资源调度算法为了解决传统调度算法所面临的问题,基于机器学习的Hadoop集群资源调度算法被广泛研究和应用。

基于机器学习的算法通过分析历史的资源调度数据和任务特征,可以自动学习模型,进而实现智能化的资源调度。

1. 数据预处理:基于机器学习的调度算法首先需要进行数据预处理,清洗和转换原始数据集,以便于后续的分析和建模。

数据预处理包括数据清洗、数据集成、数据变换等步骤,可以帮助提高数据的质量和准确性。

2. 特征提取:基于机器学习的算法通过提取任务的特征信息,建立任务与资源之间的映射关系。

基于Hadoop平台的大数据分析系统优化与性能改进

基于Hadoop平台的大数据分析系统优化与性能改进

基于Hadoop平台的大数据分析系统优化与性能改进随着互联网和信息技术的快速发展,大数据已经成为当今社会中不可或缺的一部分。

在大数据时代,如何高效地处理和分析海量数据成为各行各业面临的重要挑战之一。

Hadoop作为一个开源的分布式计算框架,被广泛应用于大数据处理和分析领域。

然而,随着数据规模的不断增大,Hadoop平台的性能也面临着挑战,因此对基于Hadoop平台的大数据分析系统进行优化和性能改进显得尤为重要。

优化目标优化基于Hadoop平台的大数据分析系统旨在提高系统的性能、稳定性和可靠性,以更好地满足用户对数据处理和分析的需求。

具体来说,优化目标包括但不限于以下几个方面:提升系统整体性能,减少任务执行时间,提高数据处理效率;降低系统资源消耗,提高资源利用率;改善系统容错能力,提高系统稳定性;提升系统扩展性,支持更大规模的数据处理。

优化策略为了实现以上优化目标,可以采取多种策略和方法来对基于Hadoop平台的大数据分析系统进行优化和性能改进:1. 资源管理优化通过合理配置集群资源、调整任务调度策略、优化内存管理等方式来提高系统资源利用率和整体性能。

2. 数据存储优化采用合适的存储格式、压缩算法以及数据分区策略来减少磁盘IO 开销,提高数据读写效率。

3. 任务调度优化优化任务调度算法、调整任务并行度、合理设置任务优先级等方式来提高任务执行效率和整体系统吞吐量。

4. 容错机制优化加强系统容错机制,改进故障检测与恢复机制,提高系统稳定性和可靠性。

5. 网络通信优化通过网络拓扑优化、网络带宽管理等方式来减少网络传输延迟,提高数据传输效率。

6. 算法优化针对特定的数据处理和分析任务,设计并实现更加高效的算法和计算模型,提高计算效率。

性能改进实践在实际应用中,可以结合以上优化策略,通过以下几个方面的实践来改进基于Hadoop平台的大数据分析系统的性能:集群调优:根据集群规模和任务特点合理配置集群资源,并监控集群运行状态进行动态调整。

Hadoop中的任务调度与节点调度策略解析

Hadoop中的任务调度与节点调度策略解析

Hadoop中的任务调度与节点调度策略解析Hadoop是一个开源的分布式计算框架,被广泛应用于大数据处理领域。

在Hadoop中,任务调度和节点调度是两个关键的组成部分,它们的合理设计和优化对于系统的性能和效率至关重要。

一、任务调度任务调度是指将待执行的任务分配给集群中的节点,以实现任务的并行执行。

在Hadoop中,任务调度器负责管理和调度任务。

其中最常用的任务调度器是基于容量调度的Fair Scheduler和基于优先级的Capacity Scheduler。

1. Fair SchedulerFair Scheduler是Hadoop中最早引入的任务调度器之一。

它的核心思想是公平分配资源,以确保每个任务都能获得相对公平的执行机会。

Fair Scheduler通过维护一个任务池和多个任务队列来实现任务的调度。

任务池中的任务按照Fair Scheduler定义的公平度规则进行排序,然后依次被分配到任务队列中等待执行。

2. Capacity SchedulerCapacity Scheduler是Hadoop中另一个常用的任务调度器。

它的设计目标是实现资源的有效利用和多租户的支持。

Capacity Scheduler通过将集群资源划分为多个容量队列,并为每个队列分配一定的资源配额,来实现任务的调度。

每个队列都可以设置自己的调度规则和优先级,从而实现不同队列之间的资源分配策略。

二、节点调度节点调度是指将任务分配给集群中的节点,以实现任务的并发执行。

在Hadoop中,节点调度器负责管理和调度节点。

最常用的节点调度器是基于容量的节点调度器Capacity Scheduler和基于资源的节点调度器Fair Scheduler。

1. Capacity Scheduler在Capacity Scheduler中,节点调度器根据每个节点的资源容量和当前任务队列的资源需求来进行调度。

当一个节点上的任务完成后,节点调度器会根据调度策略从任务队列中选择一个待执行的任务分配给该节点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

能和任务优先级等作 为依据 , 通 过权 值排序 当前 的作业 队列并将 空 闲资 源优先分 配给权值高 的任
务, 从 而实现运行过程 中作业任 务的 自适应动态调 度 。实验结 果表 明 , 改进 算法相 比原来 的 F I F O
算法有 3 0 % 的性 能提升。 关键词 : 云计算 ; 任 务调度 ; 权值 中图分类 号 : T P 3 0 1 . 5 文献标 识码 : A 文章编号 : 1 0 0 1— 9 1 4 6 ( 2 0 1 5 ) O 1 — 0 0 2 7一 o 4
收 稿 日期 : 2 0 1 4—1 1~ 0 6
基金项 目: 浙江省 自然科 学基金资助项 目( L Y1 3 F 0 1 0 0 1 1 ) 作者简 介 : 朱健军 ( 1 9 7 4一) , 男, 浙江杭州人 , 讲师, 云计算 网络.
2 8
杭 州 电 子 科 技 大 学 学 报
第3 5 卷第 1 期
2 0 l 5 年 1月
杭 州 电 子 科 技 大 学 学 报( 自然科 学 版 )
J O U R N A L O F H A N G Z H O U D I A N Z I U N I V E R S I T Y ( N a t u r a l S c i e n c e s )
1 Ha d o o p任 务 调 度
1 . 1 资源 调度 模 型
集群资源的组织和分配管理是 H a d o o p系统 中最基本 的功能模块之一 , 如图 1 所示 , 其资源分配过
程 可 以概括 为 以下 7个 步骤 。
1 ) 节点管理器通过周期性心跳汇报节点信息 ; 2 ) 资源管理器和节点管理器返回心跳应答 , 释放 C o n t a i n e r 列表信息 ; 3 ) 资源管理器收到节点管理器信息后触发节点更新事件 ;
2 0 1 5年
4 ) 资 源调 度器 在收 到节点 更新 事件后 , 按 照一 定策 略将 该策 略 节点上 的资 源分 配给各 应用 程序 ;
5 ) 应用程序向资源管理器发送周期心跳 , 以领取最新分配的 C o n t a i n e r ;
6 ) 资源管理器收到应用程序心跳信息后分配的 C o n t a i n e r 以心跳应答的形式返回; 7 ) 应 用程 序收 到新分 配 C o n t a i n e r 列表 , 将 其进 一步 分配 给 内部 的各个 任务 。
0 引 言
H a d o o p作 为 云计 算 系统 的 Ma p R e d u c e 开源实现 , 在 大 规模 的数 据 处 理 方 面得 到 了广 泛 应 用 。在 H a d o o p 平台上…用户可以不考虑任务的底层实现 , 只需 开发 云计 算 的应用程序 , 然后将任务提交 给 H a d o o p云 平 台 。H a d o o p具有 很 强 的容 错 性 , 并ቤተ መጻሕፍቲ ባይዱ方便地增加 集群节点个 数 、 线 性扩展集群规模 , 使 集群 能 适 应 处 理 更 大 规模 的数 据 集 。 H a d o o p已经 成 为 了许 多互 联 网 公 司基 础 计 算 平 台 的核 心 。但 H a d o o p也有 自身 的一些 不 足 , 特 别 是在 实 际使用 过程 中暴 露 出来 的 Ma p R e d u c e调度 器 L 2 ] 的低效 性和 对 异构 系统 适应 能 力差 的问题 。 目前 常见 的调 度算法 主 要有 默认 调度算 法 F I F O, 该方 法 采用 单 一 的先 进
( 浙江工业 大学信 息学院 , 浙江 杭州 3 1 0 0 2 3 )
摘要 : 针对 当前 H a d o o p集群 自带 的任务级 调度 分配方 法在 实际处理 作业 时存在 资源分 配不均 的 问题 , 提 出了一种基于权值 的任 务调度 分配 算法 。该算 法结 合节点 当前 的负载状 态 、 节点物理 性
V0 1 . 3 5 N o . 1
J a n . 2 0 1 5
D O I : 1 0 . 1 3 9 5 4 / j . e n k i . h d u . 2 0 1 5 . O 1 . 0 0 5
基 于 权 值 的 Ha d o o p调 度算 法 改 进 与 实现
朱健军 , 张 彤, 吴哲 夫
历算 法 ; 2 ) 选 择应 用程 序 。选定 叶 子队 列后 , 容 量 调 度器 按 照 提 交 时 间对 叶子 队列 中 的应 用 程 序 进 行
排序并依次遍历 , 以找到一个或多个最合适的 C o n t a i n e r ; 3 ) 选择 C o n t a i n e r 。对于 同一个应用程序 , 所请 求C o n t a i n e r 可能是多样化 , 涉及不同的优 先级 、 节点 、 资源量和数量。当选 中一个应用程序后 , 容量调 度器将尝试优先满足优先级高的 C o n t a i n e r , 对于同一类优先级则优先满足本地性因子高的 C o n t a i n e r 。 在原算法中作业 队列是先按照作业提交 时问和作业优先级进行排序 , 然后选择 队列头部的作业。 本 文改进 算法 首先 根据作 业权 重对 每个 队列 的作业 进 行排 序 , 然 后将 空 闲 时 隙分 配 给选 中队列 的第 一 个作 业 的 C o n t a i n e r 。因此 , 改进算 法 中作业 权重 的选择 是作 业排 序 的重要 参考依 据 。
先出队列 , 不考虑作业的大小或优先级 , 效率较低 ; 延迟调度算法 J 贝 Ⅱ 采用了时 间推移来改善数据公平 性与本地性的冲突 ; L A T E算法【 4 j 根据异构集群 中任务执行速率变化的特性 , 将后进任务调度到执行速
度较快的空 闲节点执行。本文从资源利用率角度 出发 , 在计算能力调度算法 的基础上 , 根据作业优 先级 、 资源需 求 、 节 点距 离 等 因素来 计 算作 业 的权 重 值 , 同时 实 时观 察 和 反 馈执 行 状 态 , 进 一 步 自适 应地调节节点工作负载 , 实现任务调度过程中的负载均衡 , 从而提高集群 的任务执行效率。
图1 资 源调 度 器资 源分 配流程
1 . 2 加权计 算 能力调 度算 法
从 以上调度模型可知 , H a d o o p 采用 了 3 级资源分配策略 , 当某个节点上有空 闲资源时依次选择 队 列、 应用程 序和 C o n t a i n e r 请求 , 其 调 度过 程 如 下 : 1 ) 选择 队列 。H a d o o p采 用 基 于 优先 级 的深 度 优 先 遍
相关文档
最新文档