基于深度学习的大数据系统配置参数调优的方法和系统转让专利

申请号 : CN201710361578.3

文献号 : CN107229693B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王宏志王艺蒙赵志强孙旭冉

申请人 : 哈工大大数据产业有限公司

摘要 :

本发明提供了一种基于深度学习的大数据系统配置参数调优的方法及系统,其中方法包括:神经网络训练步骤,初步构建深度神经网络,以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集;再以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求;配置参数预测步骤,设定至少一个映射规约参数的初始值,并读取当前测试数据,输入到经由神经网络训练步骤得到的深度神经网络中,得到配置参数。本发明通过深度神经网络对映射规约框架中的配置参数进行调优,避免了人工调节,且预测的参数应用效果好。

权利要求 :

1.一种基于深度学习的大数据系统配置参数调优的方法,其特征在于,包括神经网络训练步骤与配置参数预测步骤;其中,所述神经网络训练步骤包括以下步骤:

步骤1-1、初步构建深度神经网络,其中以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集;

步骤1-2、以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求;

所述配置参数预测步骤包括以下步骤:

步骤2-1、设定所述至少一个映射规约参数的初始值,并读取当前测试数据;

步骤2-2、将所述至少一个映射规约参数的初始值和当前测试数据输入到经由神经网络训练步骤得到的深度神经网络中,得到用于基于深度学习的大数据系统的配置参数;

所述步骤1-1中:

构建以映射规约参数为输入参数的五层深度神经网络,以待预测出最优配置参数作为输出参数,所述五层网络分别包括输入层、输出层和三个隐层,输入训练样本x,隐层输出为y=xl=f(ul),其中ul=Wlxl-1+bl,函数f代表输出激活函数,W代表权值,b代表偏置项,l表示第l 层;

所述步骤1-2中:

使用平方误差代价函数来衡量误差,假定输出参数类别为c,训练样本集中共N个训练样本,则映射规约时间与规定时间成本t之间的误差EN为: 其中,为第n个训练样本的目标输出的第k维, 为第n个样本对应的实际输出的第k维;

计算各层网络之间的误差,当误差小于预设阈值时保存该深度神经网络,否则通过神经元的灵敏度δ来对每层神经元的权值W进行缩放:其中, 且第l层的灵敏度: 输出层的神经元的灵

敏度为: 其中L表示总层数,yn为第n个神经元的实际输出,tn为第n个神经元的目标输出,符号 表示卷积。

2.根据权利要求1所述的基于深度学习的大数据系统配置参数调优的方法,其特征在于,所述至少一个映射规约参数的数量为2~20个。

3.一种基于深度学习的大数据系统配置参数调优的系统,其特征在于,包括神经网络训练模块与配置参数预测模块;其中,所述神经网络训练模块用于初步构建深度神经网络,其中以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集;并以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求;

所述配置参数预测模块用于将设定的所述至少一个映射规约参数的初始值和当前测试数据输入到经由神经网络训练步骤得到的深度神经网络中,得到用于基于深度学习的大数据系统的配置参数;

其中,所述神经网络训练模块用于构建以映射规约参数为输入参数的五层深度神经网络,以待预测出最优配置参数作为输出参数,所述五层网络分别包括输入层、输出层和三个隐层,输入训练样本x,隐层输出为xl=f(ul),其中ul=Wlxl-1+bl,其中,函数f代表输出激活函数,W代表权值,b代表偏置项,l表示第l层;

所述神经网络训练模块使用平方误差代价函数来衡量误差,假定输出参数类别为c,训练样本集中共N个训练样本,则映射规约时间与规定时间成本t之间的误差EN为:其中,为第n个训练样本的目标输出的第k维, 为第n个样本对应的实际输出的第k维;

计算各层网络之间的误差,当误差小于预设阈值时保存该深度神经网络,否则通过神经元的灵敏度δ来对每层神经元的权值W进行缩放:其中, 且第l层的灵敏度: 输出层的神经元的灵

敏度为: 其中L表示总层数,yn为第n个神经元的实际输出,tn为第n个神经元的目标输出,符号 表示卷积。

4.根据权利要求3所述的基于深度学习的大数据系统配置参数调优的系统,其特征在于,所述至少一个映射规约参数的数量为2~20个。

说明书 :

基于深度学习的大数据系统配置参数调优的方法和系统

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及一种基于深度学习的大数据系统配置参数调优的方法和系统。

背景技术

[0002] 近年来,大数据探索和分析在各个领域蓬勃发展。大数据系统可分为3个层次:(1)基础层:即基础数据加工层,将硬件资源分配给支持计算任务的执行平台层;(2)平台层:即核心业务层,既为应用层提供了一个易于处理数据集的接口,又能管理基础设施层分配的资源;(3)应用层:即预测结果输出层,预测出专家决策,给出大数据分析结果。
[0003] 平台层在大数据系统中起到了承上启下的作用,也是一个大数据系统的核心部分。Hadoop系统中的MapReduce(映射规约)就是平台层中的一种模型。Hadoop是一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。MapReduce是Hadoop下的一种编程模型,用于大规模数据集(大于1TB)的并行运算。他极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。Hadoop的MapReduce功能实现了将单个任务打碎,并将映射任务(Map)发送到多个节点上,之后再以单个数据集的形式加载规约(Reduce)到数据仓库里。
[0004] 配置参数设置对MapReduce工作性能有很大的影响。优质的配置参数使MapReduce工作出色,而配置参数错误是Hadoop的MapReduce系统性能退化和导致系统失效的主要原因。为了帮助平台管理员优化系统性能,需要调整配置参数处理不同的特点,不同的程序和不同的输入数据,以追求更快的工作表现。传统方法中,管理员对配置参数进行逐个调节,或利用线性回归,对参数进行配置,提取参数特征,根据MapReduce作业性能表现,从而给出近似最优解,预测配置参数以达到更好的工作性能。
[0005] 然而,管理员管理Hadoop系统时存在两大难题:(1)因为大规模分布式系统的行为和特点过于复杂,难以找到适当的配置参数;(2)系统中存在数百参数,主要影响系统性能的配置参数有几十个,使配置参数调优变得麻烦。传统方法中,人工方法或者利用回归自动调参,非常复杂繁琐,参数调节需要消耗大量时间,且所得效果不是很好,系统整体工作需要消耗很长时间。

发明内容

[0006] 本发明要解决的技术问题在于,针对现有技术中人工方法或者利用回归自动调节配置参数的效率低且效果差的缺陷,提供一种基于深度学习的大数据系统配置参数调优的方法和系统。
[0007] 本发明第一方面,提供了一种基于深度学习的大数据系统配置参数调优的方法,包括神经网络训练步骤与配置参数预测步骤;其中,
[0008] 所述神经网络训练步骤包括以下步骤:
[0009] 步骤1-1、初步构建深度神经网络,其中以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集;
[0010] 步骤1-2、以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求;
[0011] 所述配置参数预测步骤包括以下步骤:
[0012] 步骤2-1、设定所述至少一个映射规约参数的初始值,并读取当前测试数据;
[0013] 步骤2-2、将所述至少一个映射规约参数的初始值和当前测试数据输入到经由神经网络训练步骤得到的深度神经网络中,得到用于基于深度学习的大数据系统的配置参数。
[0014] 在根据本发明所述的基于深度学习的大数据系统配置参数调优的方法中,所述至少一个映射规约参数的数量为2~20个。
[0015] 本发明第二方面,提供了一种基于深度学习的大数据系统配置参数调优的系统,包括神经网络训练模块与配置参数预测模块;其中,
[0016] 所述神经网络训练模块用于初步构建深度神经网络,其中以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集;并以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求;
[0017] 所述配置参数预测模块用于将设定的所述至少一个映射规约参数的初始值和当前测试数据输入到经由神经网络训练步骤得到的深度神经网络中,得到用于基于深度学习的大数据系统的配置参数。
[0018] 在根据本发明所述的基于深度学习的大数据系统配置参数调优的系统中,所述至少一个映射规约参数的数量为2~20个。
[0019] 实施本发明的基于深度学习的大数据系统配置参数调优的方法及系统,具有以下有益效果:本发明通过深度神经网络对映射规约框架中的配置参数进行调优,避免了人工调节,寻找最优参数的难题,通过对历史参数的学习,能够更深层次地获得各配置参数自身特点,及相互之间关系,通过深度网络的多次学习,权值更新,网络预测得到最适合应用层应用需求的参数配置。本发明不仅节省了参数调节的时间,合适系统的参数使系统工作时间分配给压缩解压缩数据,从而大大降低写入和传输时间,使整体系统工作既能快速完成,又能达到更好的工作效果。

附图说明

[0020] 图1为根据本发明优选实施例的基于深度学习的大数据系统配置参数调优的方法流程图;
[0021] 图2为根据本发明优选实施例的方法中神经网络训练步骤的流程示意图;
[0022] 图3为根据本发明优选实施例的基于深度学习的大数据系统配置参数调优的系统的模块框图。

具体实施方式

[0023] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024] 本发明提供了一种利用深度神经网络进行大数据网络配置参数调优的方法,将深度神经网络框架引入到配置参数环节中,既节约时间成本,又能达到良好的工作效果。本发明主要针对大数据系统的映射任务(Map task)和规约任务(Reduce task)中参数进行学习和优化配置。映射规约(MapReduce)是一个复杂的流程,下面先对映射规约的工作流程进行简单介绍,规约映射的主要步骤如下:
[0025] (一)Map端(映射端)工作过程
[0026] (1)每个输入分片会让一个map任务(映射任务)来处理,以分布式文件系统(HDFS)的一个块的大小(初始值为64M)为一个分片。Map输出的结果会暂且放在一个环形内存缓冲区中,该缓冲区的大小初始值为100M,由io.sort.mb属性控制。当该缓冲区快要溢出时(初始设置为缓冲区大小的80%,由io.sort.spill.percent属性控制),会在本地文件系统中创建一个溢出文件,将该缓冲区中的数据写入这个文件。
[0027] (2)在写入磁盘之前,线程首先根据reduce任务(规约任务)的数目将数据划分为相同数目的分区,也就是一个reduce任务对应一个分区的数据。然后对每个分区中的数据进行排序,设置Combiner,将排序后的结果进行Combia(合并)操作。
[0028] (3)当map任务输出最后一个记录时,可能会有很多的溢出文件,这时需要将这些文件合并。合并的过程中会不断地进行排序和Combia(合并)操作。
[0029] (4)将分区中的数据传输给相对应的reduce任务。
[0030] (二)Reduce端(规约端)工作过程
[0031] (1)Reduce会接收到不同map任务传来的数据,并且每个map传来的数据都是有序的。如果reduce端接受的数据量相当小,则直接存储在内存中(缓冲区大小,由mapred.job.shuffle.input.buffer.percent属性控制,表示用作此用途的堆空间的百分比)。如果数据量超过了该缓冲区大小的一定比例(由mapred.job.shuffle.merge.percent决定),则对数据合并后溢写到磁盘中。
[0032] (2)执行应用程序层定义的化简程序,最终输出数据。按需要压缩,写入最终输出到HDFS。
[0033] 请参阅图1,为根据本发明优选实施例的基于深度学习的大数据系统配置参数调优的方法流程图。如图1所示,该实施例提供的基于深度学习的大数据系统配置参数调优的方法主要包括神经网络训练步骤与配置参数预测步骤:
[0034] 首先,在步骤S101至S102中执行神经网络训练步骤,构造深度神经网络,以管理员提供的历史工作状态为训练集,以预测出的最优配置参数为输出。并以(映射规约)MapReduce的时间成本为网络结构最终衡量标准,不断反馈调整结构,得到最终深度神经网络结构。具体如下:
[0035] 步骤S101,初步构建深度神经网络,其中以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集。该大数据系统的历史数据具体为管理员提供的历史工作状态。优选地,所述至少一个映射规约参数可以从以下重要参数表格1中选取一个或多个。在具体应用中,根据不同情况,从系统管理员处获得对系统影响最大的20个参数加入输入输出列表,选取参数如下表1所示。该至少一个映射规约参数的数量优选为2~20个。
[0036] 表格1重要参数表
[0037]
[0038] 步骤S102,以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求。该步骤中以MapReduce的时间成本为网络结构最终衡量标准,不断反馈调整结构,得到最终深度神经网络的结构。
[0039] 随后,在步骤S103至S104中执行配置参数预测步骤,利用得到的深度神经网络预测出使工作效果最佳的配置参数。具体如下:
[0040] 步骤S103,设定所述至少一个映射规约参数的初始值,并读取当前测试数据。
[0041] 步骤S104,将所述至少一个映射规约参数的初始值和当前测试数据输入到经由神经网络训练步骤得到的深度神经网络中,得到用于基于深度学习的大数据系统的配置参数。
[0042] 由此可见,本发明在初始化映射(Map)任务和规约(Reduce)任务参数后,引入深度神经网络,训练集来源是历史任务日志,对历史参数进行学习,半监督学习,通过已知的历史工作状态,对工作性能的反馈,得出深度神经网络内部的参数,从而预测并优化出,针对不同的程序和不同的输入数据都能达到最优工作表现的配置参数。
[0043] 请结合参阅图2,为根据本发明优选实施例的方法中神经网络训练步骤的流程示意图。如图2所示,该神经网络训练步骤包括:
[0044] 首先,在步骤S201中,流程开始;
[0045] 随后,在步骤S202中,初步构建深度神经网络。该深度神经网络为利用反向传播的普通深层神经网络。具体地,该步骤中构建以映射规约参数为输入参数的五层深度神经网络,以待预测出最优配置参数作为输出参数,前述五层网络分别包括输入层、输出层和三个隐层。
[0046] 随后,在步骤S203中,将大数据系统的历史数据作为训练样本集输入深度神经网l l l l l-1 l络。输入训练样本x,隐层输出为x=f(u),其中u=Wx +b,其中,函数f代表输出激活函数,W代表权值,b代表偏置项,l表示第1层。因map和reduce过程中参数不能无限扩大,具有一定范围,因此需要固定b为参数上限。
[0047] 随后,在步骤S204中,判断映射规约时间是否满足时间成本要求。使用平方误差代价函数来衡量误差,假定输出参数类别为c,训练样本集中共N个训练样本,则映射规约时间与规定时间成本t之间的误差EN为: 其中,为第n个训练样本的目标输出的第k维, 为第n个样本对应的实际输出的第k维,c=20。计算各层网络之间的误差,当误差小于预设阈值时转步骤S206保存该深度神经网络,否则转步骤S205调整每层神经元的权值。
[0048] 在步骤S205中,调整每层神经元的权值。具体地,该步骤中通过神经元的灵敏度δ来对每层神经元的权值W进行缩放,最终得到是E最小的权值:
[0049]
[0050] 其中, 且第l层的灵敏度:δl=(Wl+1)Tδl+1οf'(ul);输出层的神经元L L n n n n的灵敏度为:δ=f'(u)·(y-t),其中L表示总层数,y为第n个神经元的实际输出,t 为第n个神经元的目标输出。
[0051] 在步骤S206中,保存该深度神经网络;
[0052] 最后,在步骤S207中,该神经网络训练步骤的流程结束。
[0053] 本发明中以规约映射时间和配置参数均作为输出,规约映射时间可以理解为中间过程中的输出,配置参数是我们最重要记录并使用的输出,根据输出时间和理想时间比较误差后调整权值,在调整权值后不仅改变了时间的输出,也改变了配置参数的输出,因此可以得到时间最优时的配置参数。
[0054] 请参阅图3,为根据本发明优选实施例的基于深度学习的大数据系统配置参数调优的系统的模块框图。如图3所示,该实施例提供的基于深度学习的大数据系统配置参数调优的系统300包括神经网络训练模块301与配置参数预测模块302。
[0055] 其中,神经网络训练模块301用于初步构建深度神经网络,其中以至少一个映射规约参数作为输入参数,以待预测出最优配置参数作为输出参数,以大数据系统的历史数据作为训练样本集;并以映射规约时间作为该深度神经网络的衡量标准,基于反向传播思想的参数学习规则对每层神经元的权值进行调整,直至映射规约时间满足时间成本要求。优选地,所述至少一个映射规约参数可以从重表格中选取一个或多个。该至少一个映射规约参数的数量优选为2~20个。
[0056] 具体地,该神经网络训练模块301构建以映射规约参数为输入参数的五层深度神经网络,以待预测出最优配置参数作为输出参数,所述五层网络分别包括输入层、输出层和l l l l l-1 l三个隐层,输入训练样本x,隐层输出为x=f(u),其中u=Wx +b,函数f代表输出激活函数,W代表权值,b代表偏置项,l表示第1层。
[0057] 该神经网络训练模块301还使用平方误差代价函数来衡量误差,假定输出参数类别为c,训练样本集中共N个训练样本,则映射规约时间与规定时间成本t之间的误差EN为:其中,为第n个训练样本的目标输出的第k维, 为第n个样本
对应的实际输出的第k维。
[0058] 随后计算各层网络之间的误差,当误差小于预设阈值时保存该深度神经网络,否则通过神经元的灵敏度δ来对每层神经元的权值W进行缩放:
[0059]
[0060] 其中, 且第l层的灵敏度:δl=(Wl+1)Tδl+1οf'(ul);输出层的神经元的灵敏度为:δL=f'(uL)·(yn-tn),其中L表示总层数,yn为第n个神经元的实际输出,tn为第n个神经元的目标输出。
[0061] 配置参数预测模块302与神经网络训练模块301连接,用于将设定的所述至少一个映射规约参数的初始值和当前测试数据输入到经由神经网络训练步骤得到的深度神经网络中,得到用于基于深度学习的大数据系统的配置参数。
[0062] 综上所述,采用本发明采用深度神经网络对映射规约(MapReduce)框架中的配置参数进行调优,避免了人工调节,寻找最优参数的难题,通过对历史参数的学习,能够更深层次地获得各配置参数自身特点,及相互之间关系,通过深度网络的多次学习,权值更新,网络预测得到最适合应用层应用需求的参数配置。本发明不仅节省了参数调节的时间,合适系统的参数使系统工作时间分配给压缩解压缩数据,从而大大降低写入和传输时间,使整体系统工作既能快速完成,又能达到更好的工作效果。同时针对不同基础层输入数据和应用层提出的应用要求,都能自主学习,具有较强的适应性。
[0063] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。