基于MapReduce分级调度试题库组卷算法探究.doc

基于MapReduce分级调度试题库组卷算法探究.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MapReduce分级调度试题库组卷算法探究

基于MapReduce分级调度试题库组卷算法探究   摘 要:MapReduce调度算法包括默认的FIFO调度策略、公平调度策略、计算能力调度策略,在试题库组卷过程中采用的是分阶段的任务方式来实现的,根据任务优化MapReduce算法是本文要解决的问题。提出分级调度算法,把现有的调度策略在分级任务基础之上分为多级模式,不断趋近最终结果,根据任务的不同阶段进行分级分阶调度符合不同阶段不同需求。实验表明,多阶段调度算法能够满足试题库组卷任务的检索需求。 关键词:云计算;MapReduce;分级调度;组卷 随着云计算不断的发展,各行各业都纷纷应用这种高效、安全和便捷的大数据、分布式服务。高等院校也都纷纷涉足云计算,分布式存储、MapReduce算法以及基于云计算的各种服务系统等都在高校研究中有所体现。高等院校考试系统的组卷过程是一个复杂的检索过程,而这一过程正是云计算的强项,因此组卷算法如何利用云计算中的MapReduce编程模型来实现是本文研究的主要方向。MapReduce是Google公司开发的Hadoop框架中进行分布式数据处理的一种编程模型。在组卷过程中主要关注两个问题:一个是组卷参数分级问题、一个是组卷分级任务中的各个级别的检索问题。MapReduce的任务调度过程是将一个任务分为多个子任务进行并行处理,这个过程正好与组卷的任务有相同之处。MapReduce的调度分为:先进先出、公平调度和计算能力评估调度。这几个调度算法对于特定的组卷任务来说并不是最优化的。试题库组卷的过程可以分为多级多阶段,将复杂的任务分层剥离。这样化繁为简,提高组卷的命中率和效率。本体提出了分级调度算法,该算法要解决的重要问题是: 首先,任务分级划界。MapReduce会将一个任务分解为多个子任务,而试题库组卷过程也是一个分级不断靠近需求的过程,本文第一层级任务确定题型和分数,第二层级任务根据题型和分数确定试题个数,第三层级任务对难度系数进行优化,第四层级任务迭代微调。其次,层级上下文衔接。一层级任务完成后,应该把结果及其参数传递给二层级,依次类推。 结合MapReduce的调度过程,本文提出了分级调度的概念,每级层调度选择该层级的较为优秀的调度方法。整个任务被分为多层有先后的子任务,每个任务为下层任务提供参数进行参考,该层任务提交给适合执行的对象来处理。 1 MapReduce任务调度过程 MapReduce是Hadoop框架的一种编程模式,是进行分布式数据处理的。它的关键在于Map(地图)和Reduce(化简)。第一阶段数据检索过程,Map获取系统或数据库中的子数据,根据用户设定好的Map函数将数据分为多个Key/Value对的子数据,排序后存储与在客户端。在化简阶段,Reduce任务读取相应的子数据,这样任务被分为多个子任务并行处理,提高数据处理的效率。整个过程处于主节点的控制之下,JobTracker负责对众多节点进行掌控。 2 多级分层调度思想 试题库组卷过程在本文中可分为四层到多层,基础为四层,如果得不到优化的结果,需要在最后一层进行不断迭代优化来满足用户需求。四层任务从上到下依次是:题型确定层,该层需要很短的时间,时间可以忽略不计,只要获取用户设定的题型即可;分数确定层,这一层同上,也是直接获得;而题型确定层和分数确定层之间的衔接问题应该要处理好,思路在于M为一个完整的一次组卷过程,这个过程定义如下所示:M=f1(f2(T,F),…,fn),M表示一个完整组卷任务,f1是任务分解函数,f2表示一层和二层衔接函数,fn表示N-1层和N层的衔接函数。这样首位呼应的衔接方式,确保了能在一下层级中获得上一层级的结果参数。紧接着就是难度系数确定层,获得试题个数和分数之后,根据个数和分数的配比比例来进行难度系统比例分配,这个分配过程要求用户提供配比比例,例如1:2:3等,如果由上层函数传递过来的分数为20分,很容易获得难度个数比例,比例依次就是3:6:9+2,四舍五入最后多余的2道题则自动分配给难度最高的配比。当然,根据用户的设定的难度要求,这个2可以分配给难度系数为1的部分,也可以分配给难度系数为2的部分。这样任务就在第三层有了详细的处理过程,分配给调度器检索任务变的更加简单而有效了。当三层级处理完毕后可以将结果参数传递给四层级,进行题库覆盖任务的调度处理,那么这个过程同样也被细化了。 3 算法实现的流程 定义M函数,M=(T,F,N,C);T定义为题型,F为分数,N为难度系数,C其他用户要求参数类型。为任务1定义函数f1(T,F),通过MapReduce处理之后将结果x1赋值给函数f2,函数f2的定义为f2(N,x1),再次交给MapReduce处理将结果x2赋值给函数f3,f3定义为f

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档