一种大数据云平台下多环境配置的数据采集方法与流程

文档序号:14797094发布日期:2018-06-29 20:06阅读:422来源:国知局

本发明涉及大数据平台下参数采样的技术领域,尤其是指一种大数据云平台下多环境配置的数据采集方法。



背景技术:

近些年来,随着互联网技术的蓬勃发展,大数据的概念不断被提及。大数据由巨型数据集组成,这些数据集大小常超出人类在可接受时间下的收集、管理和处理能力。为解决这类问题,大数据平台应运而生。大数据平台依赖分布式系统,从各种各样的数据中挖掘出有价值的信息。大数据平台以其以较快的速度,解决体量巨大、类型多样的数据,具有极高的价值。

大数据平台广泛采用MapReduce架构实现分布式计算的功能。MapReduce是Google提出的一个软件架构,通过Map(映射)操作和Reduce(归纳)操作两类操作,来实现对数据的处理。数据集经过一系列的操作过程和数据传输过程,最终得到期望的结果。在这个复杂的过程,许多因素都将影响大数据平台的工作效率,如网络IO效率、硬盘IO效率、处理器核数、内存大小等。同时,由于大数据平台广泛采用MapReduce模型作为计算模型,MapReduce计算时所采用的传输模块大小、不同阶段之间的通信方式等因素也极大地影响着MapReduce架构的处理速度,影响着大数据平台的效率。

为合理地设置大数据平台中的各项配置项,我们首先需要找出对大数据平台影响较大的几类配置项。以往的工作大部分通过人工随机选取配置项,这样不仅会舍弃一些重要的配置项,也可能会选择一些对大数据平台工作效率影响较小的配置项。故采取一些自动的搜索方法不仅可以选择出影响更大的配置项,也减少了该项工作的时间。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提出了一种大数据云平台下多环境配置的数据采集方法,通过自动化的办法找出可取的配置项,并通过不重复采样,采集到大数据平台的配置项参数和运行时间,以便不同的使用者选择最适合自己的配置项参数。该方法利用二分法和Reservoir Sampling算法提高配置选择的合理性和采样的随机性。

为实现上述目的,本发明所提供的技术方案为:一种大数据云平台下多环境配置的数据采集方法,包括以下步骤:

1)根据提供的配置项,选取对大数据平台效率影响大的配置项,具体如下:

1.1)初始化配置项选择集,将从官方文档中得到的影响大的配置项加入配置选择集;

1.2)读入待选择配置项集中的第一项的配置项名称和该配置项的上下限;

1.3)使用二分法搜索配置项的参数空间,并通过实际运行情况决定是否将该配置加入配置项选择集;

1.4)将待选择配置项集中第一项配置移除;

1.5)判断待选择配置项集是否为空,若为空,则得到最终的配置项选择集,否则,返回步骤1.2),继续处理其它待选择配置项;

2)根据步骤1)选择的配置项,根据各配置项的范围进行随机不重复采样,具体如下:

2.1)初始化配置项选择集中各配置的选择步长;

2.2)根据各配置项上下限和选择步长,生成完整的配置项参数集;

2.3)使用Reservoir Sampling算法,从配置项参数集中选择所需数量的配置项参数,得到采样集;

2.4)收集采样集中各元素作为大数据云平台的配置来处理任务所需的运行时间。

所述步骤1.3)包括以下步骤:

1.3.1)初始化一个空队列,将当前配置项的参数空间的上下限范围作为一个单独的点加入队列;

1.3.2)队列第一个点出列,计算该点表示的空间范围内的中点;

1.3.3)将中点的值放入大数据平台对应配置中,运行已编写好的大数据测试应用,计算出运行时间,并加入到搜索二叉树当前层的结果集中;

1.3.4)判断与当前点处于同一层的节点是否已经全部出列,若已经全部出列,则计算当前层所有节点运行时间的方差,并将方差与阈值比较,若大于阈值,则停止迭代,将该配置项加入配置项选择集;

1.3.5)若迭代层数已经超过五层,则停止迭代,不将该配置项加入配置项选择集;

1.3.6)将当前点范围以中点为界分为两半,将这两个范围分别加入队列,跳转到步骤1.3.2)。

所述步骤2.3)包括以下步骤:

2.3.1)设配置项参数集中每个元素pi={confi,1,confi,2,...,confi,m},其中i∈Z且0<i≤n,m表示配置项选择集中元素个数,n表示配置项参数集中元素总个数,Z表示整数集,confi,j表示配置项参数集中第i个元素中的第j个配置项参数值;

2.3.2)设需要采样的样本数为k,初始化采样结果集Res={p1,...,pk};

2.3.3)对于pk+1,...,pn这些元素进行遍历,对元素pj,其中j∈Z且k<j≤n,生成随机数l=random(1,j),若l≤k,则将初始化采样结果集Res中的第l个元素替换为pj;

2.3.4)遍历结束,即得到最终结果集Res。

本发明与现有技术相比,具有如下优点与有益效果:

本发明通过研究现存大数据平台的特征和底层原理,根据大数据平台对配置项参数敏感的特点,收集并优化配置项参数,提高大数据平台的效率。该方法使用不重复随机采样,不仅提高了采样效率,也同时提高了采样的合理性。进行采样之后,本发明还可以对采样后的数据进行分析,进一步提高筛选出的配置项的合理性,有极高的使用价值。

附图说明

图1为本发明的系统框架图。

图2为配置选择集生成过程的算法流程图。

图3为二分法计算各层方差的算法流程图。

图4为配置数据采样过程的流程图。

图5为Reservoir Sampling算法采样的流程图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

本实施例所提供的大数据云平台下多环境配置的数据采集方法,包括以下步骤:

1)根据提供的配置项,选取对大数据平台效率影响较大的配置项,具体如下:

1.1)初始化配置项选择集,将从官方文档中得到的影响较大的配置项加入配置选择集;

1.2)读入待选择配置项集中的第一项的配置项名称和该配置项的上下限;

1.3)使用二分法搜索配置项的参数空间,并通过实际运行情况决定是否将该配置加入配置项选择集;其包括以下步骤:

1.3.1)初始化一个空队列,将当前配置项的参数空间的上下限范围作为一个单独的点加入队列;

1.3.2)队列第一个点出列,计算该点表示的空间范围内的中点;

1.3.3)将中点的值放入大数据平台对应配置中,运行已编写好的大数据测试应用,计算出运行时间,并加入到搜索二叉树当前层的结果集中;

1.3.4)判断与当前点处于同一层的节点是否已经全部出列,若已经全部出列,则计算当前层所有节点运行时间的方差,并将方差与阈值比较,若大于阈值,则停止迭代,将该配置项加入配置项选择集;

1.3.5)若迭代层数已经超过五层,则停止迭代,不将该配置项加入配置项选择集;

1.3.6)将当前点范围以中点为界分为两半,将这两个范围分别加入队列,跳转到步骤1.3.2);

1.4)将待选择配置项集中第一项配置移除;

1.5)判断待选择配置项集是否为空,若为空,则得到最终的配置项选择集,否则,返回步骤1.2),继续处理其它待选择配置项;

2)根据步骤1)选择的配置项,根据各配置项的范围进行随机不重复采样,具体如下:

2.1)初始化配置项选择集中各配置的选择步长;

2.2)根据各配置项上下限和选择步长,生成完整的配置项参数集;

2.3)使用Reservoir Sampling算法,从配置项参数集中选择所需数量的配置项参数,得到采样集;其包括以下步骤:

2.3.1)设配置项参数集中每个元素pi={confi,1,confi,2,...,confi,m},其中i∈Z且0<i≤n,m表示配置项选择集中元素个数,n表示配置项参数集中元素总个数,Z表示整数集,confi,j表示配置项参数集中第i个元素中的第j个配置项参数值;

2.3.2)设需要采样的样本数为k,初始化采样结果集Res={p1,...,pk};

2.3.3)对于pk+1,...,pn这些元素进行遍历,对元素pj,其中j∈Z且k<j≤n,生成随机数l=random(1,j),若l≤k,则将初始化采样结果集Res中的第l个元素替换为pj;

2.3.4)遍历结束,即得到最终结果集Res;

2.4)收集采样集中各元素作为大数据云平台的配置来处理任务所需的运行时间。

本发明是根据生产和科学研究环境中出现的实际问题而产生的一种解决方法。系统框架如图1所示,程序由Python语言编写,通过自动化的过程,选择一系列对大数据平台运行效率有影响的配置项,并根据对映的参数空间采样的过程。相比于人工选择和朴素随机算法采样,本发明提出的数据采集方法不仅可以提供非重复的数据样本,而且提高了数据的区分度和采样的随机化程度,便于后续研究分析大数据平台的执行规律或在生产环境中提高大数据平台平台的执行效率。在初步试验中我们在Spark大数据平台上进行测试,使用的配置项及其相关信息如下表所示。

图2展示了筛选配置项的过程。方差在统计学中被广泛地用于度量数据的离散程度。在本发明中,我们通过方差来评价配置项参数空间的区分度和对Spark平台执行效率的影响,通过和阈值比较来选取合适的配置。而阈值则是通过初始选择配置项的方差得到。

图3展示了二分法计算配置项方差的流程。不同于大部分的二分法,我们在此发明中并未使用深度优先搜索模型,而是使用宽度优先搜索。我们通过宽度优先搜索,按层次计算各层方差。这样,当某一层不符合迭代条件时,便可以跳出迭代,显著降低了时间复杂度,优化了方差计算方法。

图4表示了对完整配置项集采样的过程,其中的核心在于通过Reservoir Sampling算法进行不重复地采样。Reservoir Sampling算法的流程详见图5所示。Reservoir Sampling算法时间复杂度为O(n),且可以不重复采样。假设需要从{a1,...,an}中选取k个数,Reservoir Sampling算法首先将{a1,...,ak}放入结果中记为{s1,...,sk}。剩余的{ak+1,...,an},对其中的aj,生成随机数l为1-j中的随机数,若l在[1,k]范围内,便用aj替代sl。最终得到的s序列即为采样序列。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1