浅析Hadoop平台下的作业调度算法的研究

2017-12-19 15:46朱立
科学与财富 2017年33期
关键词:集群

朱立

摘要:在互联网技术和计算机技术快速发展的背景下,云计算在数据挖掘等海量数据处理中起着重要作用。Hadoop是一个开源云计算平台,其核心是作业调度算法,通过作业调度算法的研究,可以提升大规模数据的处理能力。文章阐述了Hadoop平台和其作业调度算法,然后进行实验环境搭建,进而对Hadoop平台下作业调度算法进行研究。

关键词:Hadoop;作业调度;集群

前言

随着互联网技术的迅猛发展,其面临的问题也日益突显,主要问题是用户的飞速增长,使得大规模数据处理成为难题。因此,需要借助Hadoop这个大数据处理工具。但是,在实际应用中,需要通过作业调度算法对Hadoop平台性能改进,减少资源的浪费,同时提升数据的处理能力。

一、Hadoop平台概述

云计算是由网格计算、分布式计算等发展而成的一种全新的商业计算模型。云计算技术由上至下可以划分为软件即服务、平台即服务、基础设施即服务三层[1]。而文章所研究的Hadoop属于平台即服务层,即云计算开源组织的分布式计算框架。Hadoop平台为应用程序提供了可靠的接口,节约了用户数据处理的成本,具有良好的可靠性、扩展性等优点。且在云环境下较为容易的搭建数据存储与数据分析平台,同时也助力了云环境数据处理技术的发展。

二、作业调度算法

作业调度目标是以满足用户作业需求为前提,提高系统的吞吐量,保障系统的负载均衡。目前,Hadoop平台主要的作业调度算法有FIFO调度算法、公平调度算法、计算能力调度算法三种,下面对这三种算法进行介绍。

(1)FIFO算法

FIFO(First In First Out,先进先出)调度算法是Hadoop平台中默认的算法[2]。FIFO调度算法在集群中,将接收到的用户作业提交到一个队列中,提交操作是按照作业优先级顺序或者是提交时间顺序进行。将数据初始化后,由TaskTracker为每一个节点进行任务的分配操作,分配的顺序一般是按照提交时间来进行的。节点任务在执行的过程中,任务是不能被剥夺的。FIFO算法的实现是JobQueueTask Scheduler,位于org.apache.mapred文件夹中。

该算法的主要优点是实现简单、运行稳定,因为该算法针对的是单用户、单类型的作业调度。而在调度处理多用户多类型过程中,出现性能不稳、队列尾端作业饿死、资源浪费等问题。

(2)公平调度算法

公平调度算法是针对多用户多类型的作业进行调度的算法。公平调度算法中,在作业优先级一致的条件下,几乎均匀的将资源分配给各个作业节点。如果集群中仅有一个作业运行的情况下,该作业独自享有这个集群。当新的作业进入时,需要按照作业的优先级进行集群分享。简而言之,作业权重相同,作业分配的集群资源是相同的。

该算法的主要优点是实现多用户的资源平均共享,提交时间较晚的作业不会饿死。但是该算法忽视了作业调度优先级问题。

(3)计算调度算法

计算调度算法功能与公平调度算法类似,但是在调度设计与实现中存在差异。该算法针对的是多用户作业队列,每个队列按照配置获取节点执行任务TaskTrack,然后按照配置的不同,对集群资源的百分比进行分配,这种算法能够对每个队列的资源予以限制。每个队列采用的是FIFO调度算法,队列内的调度是按照作业优先级进行的,而任务提交是系统随机进行分配的。

该算法的设计思想是能够合理的分配计算资源在用户之间、队列之间的比例。但是,该调度算法简爱那个数据处理放置到最后进行考虑,就导致了作业的执行效率降低。

三、实验及结果分析

文章通过实验平台的搭建,对上述三种调度算法在执行中的不同进行对比。针对多个测试队列、多类型作业在不同作业调度算法下的性能,得出实验数据。

1、实验环境搭建

Hadoop实验环境的搭建,采用的是三台普通的服务器进行测试,三台服务器的主机名分别为f1、f2、f3,其IP地址分别为178.178.1.31、178.178.1.32、178.178.1.33。

集群节点的硬件配置是,CPU 是4核,内存4GB,硬盘是320GB,;软件环境是Ubuntu-desktop操作系统,安装javajdkl和Hadoop软件,适用的开发工具是eclipse。其中,Hadoop软件安装的分别是1.0.4版本和2.2.0版本。

2、实验实施

实验的思路是,通过两个量级规模较小且相近的作业,和一个量级较大的作业进行比较,比较的是调度算法的运行时间和响应的情况。

实验中测试文件是英文小说。在/Lerasort路径下生成三组作业原始数据,分别时10MB、15MB、1G。然后在Hadoop平台中运行,Teragen生成行大小是100B的数据。运行命令中参数的设置是根据生成数据的总量计算得出的。接下来在三台PC机中提交作业,且不同调度算法中的提交顺序相同。

实验选择WordCount测试方式对作业执行,该方式主要是对文件中单词出现的次数进行获取。将参试文件转到HDFS中,然后进行调度算法的测试。

3、结果分析

使用FIFO调度算法对作业调度情况进行测试,按照顺序提交作业,作业运行的情况如表1所示。

使用公平调度算法运行作业,运行的情况如表2所示。

使用计算能力调度算法对每个作业运行,运行信息如表3所示。

通过实验结果可以看出,公平调度算法的执行更为有效,因为其在提交作业时,就对资源进行分配。

总结:

为了对Hadoop平台下的作业调度算法进行研究,文章建立了小型的Hadoop集群,通过三种不同规模的作业,对三种调度算法进行了解。实验结果表明,公平调度算法较其他两种算法具有灵活、高效的优势。这一研究提高Hadoop平台的性能和资源利用效率都具有十分重要的实际意义。

参考文献:

[1]戴小平,張宜力.Hadoop平台下计算能力调度算法的改进与实现[J].计算机工程与应用,2015,51(19):61-65.

[2]李千目,张晟骁,陆路,等.一种Hadoop平台下的调度算法及混合调度策略[J].计算机研究与发展,2013,50(s1):361-368.

猜你喜欢
集群
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
对构建智慧产业集群的几点思考
中华医学会医学期刊集群化发展的模式分析