一种在线配置Hadoop参数的方法和装置制造方法

文档序号:7779875阅读:154来源:国知局
一种在线配置Hadoop参数的方法和装置制造方法
【专利摘要】本发明公开了一种在线配置Hadoop参数的方法和装置,以实现系统运行的性能最优。该方法包括:对生产环境集群中作业的数据量进行监控;当监控到生产环境集群中作业的数据量大于预设值时,统计当前配置下k个节点在p个任务阶段中每个任务阶段完成作业的平均完成时间;分别计算集合与n个记录中作业特征属性集合的n个欧几里得距离,获得n个欧几里得距离中最小欧几里得距离对应的记录;在当前配置和最优配置的配置参数值不等时,将最优配置设置为数据量大于预设值的作业在生产环境集群中运行时使用的配置。本发明能够在可以接受的时间里将这些情况的作业运行调整到资源使用的平衡状态,提高了系统在线运行的平均效率,实现系统运行的性能最优。
【专利说明】—种在线配置Hadoop参数的方法和装置
【技术领域】
[0001]本发明涉及云计算领域,具体涉及一种在线配置Hadoop参数的方法和装置。
【背景技术】
[0002]Hadoop是Apache开源组织的一个分布式计算开源框架,被设计用来在由通用计算设备组成的大型集群上执行分布式应用。基于Java语言构建的Hadoop框架实际上是一种分布式处理大数据的平台,在近十年中,Hadoop已成为大数据革命的中心。
[0003]然而,Hadoop目前有多达190个配置参数,其中,大约有20个参数对Hadoop应用程序的效率有显著的影响。通过调整这些参数,可以进行四个方面的性能调优:CPU、内存、磁盘I/o和网络进行优化。例如,能影响磁盘I/O和CPU相关的参数包括mapred.compress,map.0utput、mapred.0utput, compress 和 mapred.map.0utput, compression, codec。这些参数用于控制是否对输出进行压缩,其中,mapred.compress, map.0utput用于map输出压缩,mapred.0utput, compress 用于作业输出压缩,M mapred.map.0utput, compression,codec是压缩采用的压缩编解码器。除了默认的编解码器,用户也可以提供其他的压缩编解码器。这些选项在默认情况下都是禁用的。一方面,启用输出压缩可以加快磁盘写操作,减少数据传输的总时间(在shuffle阶段和HDFS写阶段都包括了磁盘IO资源和网络资源的使用),另一方面,压缩/解压过程会增加CPU资源的开销。与内存使用相关的参数包括参数 i0.sort, mb 和参数 mapred.job.shuffle, input, buffer, percent,其中,i0.sort, mb设置用于map端排序的缓冲区大小,单位是MB,默认值是100。这个值越大,溢出到磁盘就越少,因此会减少map端的I/O时间,而增加这个值会导致每个map任务需要的内存增加。Reduce在shuffle阶段对下载来的map数据,并不是立刻就写入磁盘的,而是会先缓存在内存中,然后当使用内存达到一定量的时候才刷入磁盘。这个内存大小的控制就不像map一样可以通过 i0.sort, mb 来设定了,而是通过参数 mapred.job.shuffle, input, buffer,percent (默认值是 0.7)来设置。mapred.job.shuffle, input, buffer, percent 参数是一个百分比,表示shuffile在reduce内存中的数据最多使用内存量的百分比。默认情况下,reduce会使用其堆内存的70%来在内存中缓存数据。该参数的设置大小同样也会影响到磁盘溢出的大小,设置合理可以使得磁盘I/O的使用和内存的使用相对平衡。
[0004]虽然Hadoop对这些参数提供了默认的配置值,但是使用默认的配置并不能很好地适应变化的工作负载,从而导致Hadoop集群性能地衰减,因此需要用户通过设置配置文件mapred-site.xml中的一些参数来实现集群设置和调优。然而,由于参数的配置空间巨大,即使用户经验丰富,也不能很好地权衡CPU与I/O资源的使用,这就很容易产生出错的配置。鉴于此,现有技术提出了采用基于代价的方法对Hadoop/MapReduce的性能进行数学上的建模,实现对配置不同参数条件下的系统性能的预测。基于该模型采用递归的随机搜索算法自动地在参数空间中搜索最优的参数配置,实现了参数的自动配置过程。
[0005]上述现有技术提供的方法都是在Hadoop/MapReduce的离线状态下实施配置过程的,作业在Hadoop/MapReduce上运行时,这些配置不会发生改变。然而,对于连续运行的作业序列和数据计算分布不均匀的作业,这种配置方式将不再适应。首先,连续运行的作业序列在运行过程中,其配置需要根据不同的作业类型进行调整,因为不同的作业类型使用的CPU和I/O资源有可能不一样,固定的一种配置不再适应不同作业类型构成的序列。其次,对于数据计算分布不均匀的作业,这种作业输入的数据量大,处理这些数据的不同部分耗费的CPU资源是不一样的,当数据处理耗费的资源发生变化时就有必要调整Hadoop/MapReduce的参数配置以适应新的情况,使得作业完成的时间达到最优。

【发明内容】

[0006]本发明实施例提供一种在线配置Hadoop参数的方法和装置,以针对连续运行的作业序列或数据计算分布不均匀的作业,将其运行调整至资源使用的平衡状态,实现系统运行的性能最优。
[0007]本发明实施例提供一种在线配置Hadoop参数的方法,所述方法包括:
[0008]作业监控器对生产环境集群中用户所提交作业的数据量进行监控;
[0009]当监控到所述生产环境集群中用户所提交作业的数据量大于预设值时,所述作业监控器统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的平均完成时间Patphase,所述P个平均完成时间Patphase构成集合PhaseAveTime,所述k为大于I的自然数;
[0010]作业匹配器分别计算所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,获得所述η个欧几里得距离中最小欧几里得距离对应的记录,所述配置数据库η个记录分别包含η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和η个完成所述η个训练作业时所使用的最优配置,所述η为大于I的自然数;
[0011]资源平衡器比较所述当前配置和最优配置,若所述当前配置和最优配置的配置参数值不等,则将所述最优配置设置为所述数据量大于预设值的用户所提交作业在所述生产环境集群中运行时使用的配置。
[0012]本发明另一实施例提供一种在线配置Hadoop参数的装置,所述装置包括:
[0013]作业监控器,用于对生产环境集群中用户所提交作业的数据量进行监控;当监控到所述生产环境集群中用户所提交作业的数据量大于预设值时,统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的平均完成时间patphase,所述P个平均完成时间Patphase构成集合PhaseAveTime,所述k为大于I的自然数;
[0014]作业匹配器器,用于分别计算所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,获得所述η个欧几里得距离中最小欧几里得距离对应的记录,所述配置数据库η个记录分别包含η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和η个完成所述η个训练作业时所使用的最优配置,所述η为大于I的自然数;
[0015]资源平衡器,用于比较所述当前配置和最优配置,若所述当前配置和最优配置的配置参数值不等,则将所述最优配置设置为所述数据量大于预设值的用户所提交作业在所述生产环境集群中运行时使用的配置。[0016]从上述本发明实施例可知,一方面,由于作业监控器是在监控到生产环境集群中用户所提交作业的数据量大于预设值时才触发Hadoop参数的在线配置,而确定η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和η个完成所述η个训练作业时所使用的最优配置的计算节点不属于生产环境集群,其确定特征属性集合和最优配置的过程是离线过程,因此在线配置Hadoop参数的过程不会影响实际系统的正常运行?’另一方面,资源平衡器经比较获知当前配置和最优配置的配置参数值不等时,将所述最优配置设置为数据量大于预设值的用户所提交作业在所述生产环境集群中运行时使用的配置,因此,在数据中心具有大量、连续运行的作业序列或数据计算分布不均匀的作业时,本发明实施例提供的方法和装置能够适应作业调整的情况和数据计算分布不均匀的情况,在可以接受的时间里将这些情况的作业运行调整到资源使用的平衡状态,提高了系统在线运行的平均效率,实现系统运行的性能最优。
【专利附图】

【附图说明】
[0017]图1是本发明实施例提供的在线配置Hadoop参数的方法的基本流程示意图;
[0018]图2-a是本发明实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0019]图2-b是本发明实施例提供的在线配置Hadoop参数的装置中各器件与配置数据库等的连接关系不意图; [0020]图3是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0021]图4是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0022]图5-a是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0023]图5-b是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0024]图5-c是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0025]图6-a是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0026]图6-b是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图;
[0027]图6-c是本发明另一实施例提供的在线配置Hadoop参数的装置逻辑结构示意图。【具体实施方式】
[0028]本发明实施例提供一种在线配置Hadoop参数的方法,包括:作业监控器对生产环境集群中用户所提交作业的数据量进行监控;当监控到所述生产环境集群中用户所提交作业的数据量大于预设值时,所述作业监控器统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的平均完成时间patph_,所述P个平均完成时间Patphase构成集合PhaseAveTime,所述k为大于I的自然数;作业匹配器分别计算所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,获得所述η个欧几里得距离中最小欧几里得距离对应的记录,所述配置数据库η个记录分别包含η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和η个完成所述η个训练作业时所使用的最优配置,所述η为大于I的自然数;资源平衡器比较所述当前配置和最优配置,若所述当前配置和最优配置的配置参数值不等,则将所述最优配置设置为所述数据量大于预设值的用户所提交作业在所述生产环境集群中运行时使用的配置。本发明实施例还提供相应的在线配置Hadoop参数的装置。以下分别进行详细说明。
[0029]本发明实施例的在线配置Hadoop参数的方法的基本流程可参考图1,该方法可用于Hadoop集群。需要说明的是,由于Hadoop/MapReduce框架并不支持在线调整参数配置及时生效的机制,由此,在实现本发明的在线配置Hadoop参数的方法时,需要修改Hadoop/MapReduce源码,增加参数修改后立即生效的机制;该机制是通过在需要参数数值的代码段之前加入重新读入参数和初始化对应资源的代码而实现的。附图1示例的在线配置Hadoop参数的方法主要包括如下步骤SlOl至步骤S104:
[0030]S101,作业监控器对生产环境集群中用户所提交作业的数据量进行监控。
[0031]在本发明实施例中,生产环境集群可以是MapReduce生产环境集群。
[0032]S102,当监控到生产环境集群中用户所提交作 业的数据量大于预设值时,作业监控器统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成用户所提交作业的平均完成时间Patphase,其中,P个平均完成时间Patphase构成集合PhaseAveTime, k为大于I的自然数。
[0033]在本发明实施例中,作业监控器并非每时每刻都对生产环境集群中用户所提交作业的运行状况进行监控。一般情况下,作业监控器每分钟进行一次周期性地监控,监控生产环境集群中是否有用户新提交作业。当作业监控器监控到新的用户所提交作业启动,并且其数据量大于预设值(例如,50G)的事件发生时才触发在线配置的过程。由于这一结果可以通过Hadoop自身的日志系统得到,不需要额外的负载计算,因此,在线配置不会影响实际系统的正常运行。
[0034]需要说明的是,本发明所述的P个任务阶段可以是map任务的5个任务阶段即{read, map, collect, spill, merge}和 reduce 任务的 4 个任务阶段即{shuffle,sort, reduce, write},为了下文描述的方便,将map任务的5个任务阶段{read, map,collect, spill, merge}记为集合 MPhase,即 MPhase={read, map, collect, spill,merge},将 reduce 任务的 4 个任务阶段{read, map, collect, spill, merge}记为集合 RPhase,即 RPhase= {shuffle, sort, reduce, write},两个集合的合集记为 Phase,即Phase=MPhase U RPhase。
[0035]作为本发明一个实施例,作业监控器统计当前配置下生产环境集群的k个节点在P个任务阶段中每个任务阶段完成用户所提交作业的平均完成时间Patph可以是包括如下步骤S1021和步骤S1022:
[0036]S1021,统计当前配置下生产环境集群的k个节点中任意第i个节点在P个任务阶段中每个任务阶段完成用户所提交作业的完成时间^imeiphase。
[0037]中的下标phase表示P个任务阶段中任意一个任务阶段。如前所述,Phase=MPhase U RPhase,因此,就表示当前配置下生产环境集群的k个节点中任意第i个节点在read这一任务阶段完成用户所提交作业的完成时间,Scollect、等的含义类推。
[0038]S1022%/W 按照公式
【权利要求】
1.一种在线配置Hadoop参数的方法,其特征在于,所述方法包括: 作业监控器对生产环境集群中用户所提交作业的数据量进行监控; 当监控到所述生产环境集群中用户所提交作业的数据量大于预设值时,所述作业监控器统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的平均完成时间Patphase,所述P个平均完成时间patphase构成集合PhaseAveTime,所述k为大于I的自然数; 作业匹配器器分别计算所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,获得所述η个欧几里得距离中最小欧几里得距离对应的记录,所述配置数据库η个记录分别包含η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和η个完成所述η个训练作业时所使用的最优配置,所述η为大于I的自然数; 资源平衡器比较所述当前配置和最优配置,若所述当前配置和最优配置的配置参数值不等,则将所述最优配置设置为所述数据量大于预设值的用户所提交作业在所述生产环境集群中运行时使用的配置。
2.根据权利要求1所述的方法,其特征在于,所述作业监控器统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的平均完成时间Patphase,包括: 统计当前配置下所述生产环境集群的k个节点中任意第i个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的完成时间time、; 对所述按照公式
3.根据权利要求1所述的方法,其特征在于,所述作业匹配器分别计算所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,获得所述η个欧几里得距离中最小欧几里得距离对应的记录,包括: 按照公式T—idDistunce=丨(Σ)计算所述集合Vpkase&PhasePhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,所述TimeEuclidDistance为所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离中的任意一个欧几里得距离,所述jatphase e JobAveTime,所述jatphase为对所述η个作业中的一个作业进行s次随机抽样所得s个训练作业Ws提交至测试环境集群中运行时,在所述P个任务阶段中一个任务阶段完成所述s次所述η个作业中的一个作业的平均完成时间,所述Phase为所述p个任务阶段构成的集合,所述phase为所述Phase中的元素; 获得TimeEuclidDistance的最小值后,从所述配置数据库中取使得所述η个欧几里得距离中欧几里得距离最小时对应的记录。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述作业监控器对生产环境集群中用户所提交作业的数据量进行监控之前,还包括: 作业训练器获取所述η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和完成所述η个训练作业时所使用的η个最优配置。
5.根据权利要求4所述的方法,其特征在于,所述作业训练器获取所述η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和完成所述η个训练作业时所使用的η个最优配置,包括如下步骤SI至步骤S4: SI,对所述η个训练作业中每一个提交至作业训练器的训练作业,所述作业训练器在配置参数表中搜索一个配置C设置用于运行所述训练作业的测试环境集群; S2,计算在所述配置C下P个任务阶段中每个任务阶段完成m个map任务的平均完成时间aveTimemphase和r个reduce任务的平均完成时间BveTimeiphase,所述
6.一种在线配置Hadoop参数的装置,其特征在于,所述装置包括: 作业监控器,用于对生产环境集群中用户所提交作业的数据量进行监控;当监控到所述生产环境集群中用户所提交作业的数据量大于预设值时,统计当前配置下所述生产环境集群的k个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的平均完成时间Patphase,所述P个平均完成时间patphase构成集合PhaseAveTime,所述k为大于I的自然数;作业匹配器,用于分别计算所述集合PhaseAveTime与配置数据库η个记录中作业特征属性集合JobAveTime的η个欧几里得距离,获得所述η个欧几里得距离中最小欧几里得距离对应的记录,所述配置数据库η个记录分别包含η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和η个完成所述η个训练作业时所使用的最优配置,所述η为大于I的自然数; 资源平衡器,用于比较所述当前配置和最优配置,若所述当前配置和最优配置的配置参数值不等,则将所述最优配置设置为所述数据量大于预设值的用户所提交作业在所述生产环境集群中运行时使用的配置。
7.根据权利要求6所述的装置,其特征在于,所述作业监控器包括: 统计模块,用于统计当前配置下所述生产环境集群的k个节点中任意第i个节点在P个任务阶段中每个任务阶段完成所述用户所提交作业的完成时间Sphase ; 第一计算模块,用于对所述按
8.根据权利要求6所述的装置,其特征在于,所述作业匹配器包括: 欧几里得距离计算模块,用于按照公式TimAudidDistunce =
9.根据权利要求6至8任意一项所述的装置,其特征在于,所述装置还包括: 作业训练器,用于获取所述η个作业对应的η个训练作业在训练时获得的η个作业特征属性集合和完成所述η个训练作业时所使用的η个最优配置。
10.根据权利要求9所述的装置,其特征在于,所述作业训练器包括: 配置搜索模块,用于对所述η个训练作业中每一个提交至作业训练器的训练作业,所述作业训练器在配置参数表中搜索一个配置C设置用于运行所述训练作业的测试环境集群; 第二计算模块,用于计算在所述配置C下P个任务阶段中每个任务阶段完成m个map任务的平均完成时间aveTimemphase和r个reduce任务的平均完成时间aveTimerphase,所述
【文档编号】H04L29/08GK103701635SQ201310672010
【公开日】2014年4月2日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】贝振东, 喻之斌, 曾经纬, 张慧玲, 须成忠 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1