一种分布式系统架构任务级参数动态调整的方法及装置的制造方法

文档序号:9846533阅读:466来源:国知局
一种分布式系统架构任务级参数动态调整的方法及装置的制造方法
【技术领域】
[0001]本发明涉及云计算技术领域,特别涉及一种分布式系统架构任务级参数动态调整的方法及装置。
【背景技术】
[0002]MapReduce编程模型的思想来源于函数式编程语言Lisp,由Google公司于2004年提出并首先应用于大型集群。目前,Hadoop/MapReduc作为一个分布式大数据处理平台是该编程模型最成功的开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用。
[0003]Hadoop目前有多达190个配置参数,其中大约有20个左右的参数对MapReduce作业的性能有显著的影响。通过这些参数可以进行三个方面的性能调优:CPU、内存和I/O优化。
[0004]这些参数根据参数设置的过程可以分为两类:任务的资源申请阶段配置的参数和任务资源分配后配置的参数。像和mrcv的重新配置均需要重新向Hadoop的资源调度器重新申请,当得到合适的资源后会根据数据局部化计算的要求分配给符合要求的任务,得到该资源的任务会进一步配置其它的参数,然后运行。所以作业在运行阶段动态调整参数需要考虑参数的配置流程。
[0005]每个MapReduce作业一般包括两种类型的任务:map任务和reduce任务。正是一定数量的map任务和reduce任务以分布式并行运行的方式完成了一个MapReduce作业的运行。不同的任务的工作量由于处理的数据的差异会不一样,然而,Hadoop在运行状态下并不支持不同任务参数的动态调整,虽然Hadoop对这些参数提供了默认的配置值,但是使用默认的配置并不能很好地适应不同任务的工作负载,这限制了 MapReduce任务级的性能优化,从而导致Hadoop集群性能地衰减。
[0006]目前,已有的参数配置机制都是在Hadoop/MapReduce的离线状态下实施配置过程的,而作业在Hadoop/MapReduce上运行时,配置不会发生改变,而每个作业的配置也是完全一样。这对于连续运行的作业序列和数据计算分布不均匀的作业,这种配置机制不再适应。首先连续运行的作业序列在运行过程中配置需要根据不同的作业类型进行调整,因为不同的作业类型使用的CPU和1/0资源有可能不一样,固定的一种配置不再适应不同作业类型构成的序列。对于数据计算分布不均匀的作业,这种作业输入的数据量大,处理这些数据的不同部分耗费的CPU资源是不一样的,当数据处理耗费的资源发生变化时就有必要调整Hadoop/MapReduce的参数配置以适应新的情况,使得作业完成的时间达到最优。

【发明内容】

[0007]本发明要解决的是每个任务的参数配置不能在作业运行过程中动态地根据用户需求调整的技术问题。
[0008]为了解决上述问题,本发明提供了一种分布式系统架构任务级参数动态调整的方法,包括:步骤一,在作业对象初始化时创建一个配置服务线程,该线程每隔预定时间检查是否有新的P组配置;步骤二,如果有则优先为其分配资源;步骤三,每个任务通过自身id检索到自己的配置后,在任务初始化时完成第二次参数的配置。
[0009]本发明还提供了一种分布式系统架构任务级参数动态调整的装置,包括:配置服务模块,用于在作业对象初始化时创建一个配置服务线程,该线程每隔预定时间检查是否有新的P组配置;资源再申请模块,用于如果有新的P组配置则优先为其分配资源;第二次配置模块,用于每个任务通过自身id检索到自己的配置后,在任务初始化时完成第二次参数的配置。
[0010]本发明的技术方案实现了一种分布式系统架构任务级参数动态调整的方法及装置,增加了配置服务、资源再申请和配置装配服务,实现了Hadoop MapReduce任务级的性能参数动态配置功能。使得Hadoop/MapReduce在作业运行过程中不中断每个任务运行的前提下,能根据用户的需要动态调整每个任务的参数,让用户能够根据作业实际的运行情况动态地调整每个任务的参数以实现更好地在线性能优化。
【附图说明】
[0011 ]图1一种分布式系统架构任务级参数动态调整的方法流程图;
[0012]图2任务级参数动态配置结构示意图;
[0013]图3任务级参数动态配置流程图;
[0014]图4一种分布式系统架构任务级参数动态调整的装置示意图。
【具体实施方式】
[0015]下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0016]需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0017]实施例一,一种分布式系统架构任务级参数动态调整的方法,如图1所示,包括:
[0018]步骤一,在作业对象初始化的时创建一个配置服务线程,该线程每隔预定时间检查是否有新的P组配置;
[0019]具体的,本发明的技术方案创建的一个单独的配置服务线程,并设置每秒或其它预定时间,比如~秒,监控用户给定位置的配置文件的更新和作业是否完成。其中,P为正整数。
[0020]步骤二,如果有则优先为其分配资源;
[0021]具体的,本发明的技术方案设计了资源再申请的机制。设用户每次提供P组(p〈=(n-m))配置,每组需要配置的参数有k个,每组配置的格式为一个向量,则其中第i组配置为1 = {以1,以2,(^3丨(^幻,那么关于任务资源分配的参数可以设置为前四位(^1,(^2,(^3和Ci4。其中Cil和Ci2是map任务关于资源分配的参数,Ci3和Ci4则为reduce任务关于资源分配的参数。当这P组配置更新时,本机制将这P组配置保存在一个java的哈希map数据结构中同时将该结构拷贝一份给资源装配服务。设第i组配置Vi则保存为Map〈i,Vi>,该数据结构设为Config。本机制在Hadoop的资源分配对象中设计的资源再申请机制会根据这P组配置中关于任务资源分配的参数值重新向Hadoop的资源调度器提交一个优先级高于非动态配置的任务优先级的资源申请,资源调度器接收到该申请后会优先为这P个资源申请分配资源,这种方式下,资源调度器并没有中断其它非动态配置的任务的资源分配。
[0022]步骤三,每个任务通过自身id检索到自己的配置后,在任务初始化时完成第二次参数的配置。
[0023]具体的,本发明的技术方案在第二次配置过程中,每个任务自己负责动态调整参数,当任务通过自身id在资源装配服务中检索到自己的配置后,在任务初始化的时候就完成了第二次参数的配置,如果任务没有在资源装配服务中检索到自己的配置,则跳过配置,继续运行。
[0024]实施例二,一种分布式系统架构任务级参数动态调整的方法,在实施例一的基础上如图2至3所示,包括:
[0025]更优地,所述步骤一,如果有则优先为其分配资源具体为,当P组配置参数更新后,则通知给作业分配对象,所述作业分配对象包括资源再申请机制,所述资源再申请机制根据所述P组配置中关于任务资源分配的参数值重新向资源调度器提交一个优先级高于非动态配置的任务优先级的资源申请,资源调度器接收到该申请后优先为所述P个资源申请分配资源。
[0026]更优地,所述步骤一P组配置更新时,设用户每次提供P组配置,每组需要配置的参数有k个,每组配置的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1