工程科学与技术   2020, Vol. 52 Issue (1): 191-197
一种Spark作业配置参数智能优化方法
阮树骅1,2, 潘梵梵1, 陈兴蜀1,2, 罗永刚2, 吴天雄3     
1. 四川大学 网络空间安全学院,四川 成都 610065;
2. 四川大学 网络空间安全研究院,四川 成都 610065;
3. 四川大学 计算机学院,四川 成都 610065
基金项目: 国家自然科学基金青年科学基金项目(61802270);中央高校基本科研业务费基础研究项目(SCU2018D018)
摘要: Spark的配置参数对作业运行性能有较大影响,针对配置参数种类多、参数搜索空间大、参数间相互影响导致人工配置参数调优效率低下的问题,提出了一种Spark作业配置参数智能优化方法。首先,在Spark众多配置参数中选择对作业运行性能影响较大的关键配置参数,建立典型Spark作业的运行数据集,利用支持向量回归算法,构建作业性能预测模型,通过改变数据集的规模,对比分析了模型预测值和作业的真实运行时间,模型评估指标证明了作业性能预测模型的有效性和准确性。其次,基于作业性能预测模型,设计并实现了基于爬山算法、模拟退火算法、递归随机搜索算法以及粒子群算法的配置参数优化算法,并对4种算法的求解质量进行对比分析,实验表明递归随机搜索算法在3种不同类型的作业上收敛结果较优且标准差较小,证明该算法对不同类型作业的适应性较强、稳定性较好。将本文的智能优化配置与传统经验优化配置相比,实验结果表明,智能优化配置为典型Spark作业分别带来了4%、15%、22%的平均性能提升,证明智能优化配置能够高效地获取到具备较好作业适应性的配置,提升作业运行性能。
关键词: Spark    配置参数    性能预测    智能优化    
A Smart Optimization Method for Spark Jobs’ Configuration Parameters
RUAN Shuhua1,2, PAN Fanfan1, CHEN Xingshu1,2, LUO Yonggang2, WU Tianxiong3     
1. College of Cybersecurity, Sichuan Univ., Chengdu 610065, China;
2. Cyber Security Research Inst., Sichuan Univ., Chengdu 610065, China;
3. College of Computer, Sichuan Univ., Chengdu 610065, China
Abstract: In order to solve the problem of low efficiency for manual configuration parameter tuning of Spark jobs caused by the large number of parameters, large parameter search space and mutual influence among parameters, a smart configuration parameter tuning method was proposed. Firstly, a set of core configuration parameters of Spark that had great effort to jobs’ performance were selected, then the performance prediction model was built based on the selected configuration parameters and the corresponding jobs’ performance information using support vector regression algorithm. By changing the size of the data set, the predicted value of the model was compared with the real running time of the job, and the evaluation index proved the effectiveness and accuracy of the jobs’ performance prediction model. Secondly, several optimization algorithms of configuration parameters based on hill climbing, simulated annealing, recursive random search and particle swarm were designed and implemented. The solution quality of these algorithms was analyzed by experiments. The experiment results showed unique advantage of recursive random search against other algorithms on both convergence result and convergence variance, which indicate recursive random search had both good stability and adaptability to different types of jobs. Compared with experienced optimization configuration, the experiment results showed that the smart optimization configuration can bring 4%, 15% and 22% average performance improvement to typical Spark jobs, which demonstrate that smart optimization configuration can obtain more suitable parameters for given jobs efficiently and improve running performance of jobs.
Key words: Spark    configuration parameters    performance prediction    smart optimization    

Spark是广泛使用的开源大数据计算框架[1],利用弹性分布式数据集RDD[2],可以基于内存高效处理数据流。然而,使用Spark进行大数据处理需要预先设定作业的配置参数,参数配置不当,会降低Spark作业的运行性能。而靠传统人工对配置参数进行优化则存在一定的困难。首先,Spark有近200个配置参数,调参时不仅需要清楚每个配置参数的含义,还要明确配置参数与作业负载特征、作业数据规模的关系;其次,部分配置参数存在互相影响的情况;最为困难的一点是配置参数取值搜索空间大,假设只调整3个配置参数,每个配置参数取值有10种可能,则总共有1 000种组合,靠传统优化根本难以完成。

作业运行性能的提升在大数据领域一直被颇为关注。早期在MapReduce提出时就有许多学者针对MapReduce作业研究性能提升[3-5],可分为白盒性能模型和黑盒性能模型两种方法。白盒性能模型关注系统内部运行原理;而黑盒性能模型将系统内部的复杂细节进行屏蔽,更关注系统参数与作业运行性能之间的关系。尽管已有部分研究以白盒性能模型的方式提升Spark作业运行性能[6-7],但白盒性能模型与系统内部高度耦合,不仅构建成本高,而且灵活性差。

因此,本研究的关注点主要集中在黑盒性能模型上,通过研究Spark配置参数与作业运行性能之间的关系为作业推荐最优配置,然而目前Spark在配置参数优化方面的研究成果较少。Petridis等[8]提出了一种通过配置参数进行性能调优的试错方法,说明了作业运行性能与配置参数之间的关系。然而Spark配置参数众多,参数的合理选择也是一个需要考虑的问题。Li等[9]研究了并行度参数对作业运行性能的影响。Chao等[10]对作业运行期间的不同stage分别建立回归模型,再基于每个stage的预测时间建立回归模型以预测作业的总体运行时间,但由于每个stage的预测时间存在误差,基于误差数据再进行回归会增加作业总体运行时间的预测误差。陈侨安等[11]通过近邻搜索算法在历史数据库中寻找同类作业,将同类作业的配置推荐给当前作业。然而该方法对同类作业的刻画存在缺陷,且过于依赖历史数据库中的已有配置[12]。Wang等[13]将配置参数优化问题转化为一个分类问题,以配置参数的默认值作为基准,根据作业性能的不同提升程度对配置参数的不同取值进行分类,然而分类模型并不能对作业的性能做出有效预测。

针对以上问题,本文首先从Spark的近200个配置参数中筛选出对作业运行性能有较大影响的关键配置参数,并构建典型的Spark作业运行数据集,基于支持向量回归算法建立Spark作业性能预测模型,刻画出数据规模、配置参数与作业运行性能之间的函数关系。然后,比较分析了基于爬山算法、模拟退火算法、递归随机搜索算法以及粒子群算法的配置参数优化算法,选择了稳定性最好、适应性最强的递归随机搜索算法,与作业性能预测模型共同构成了本文的Spark作业配置参数智能优化方法。该方法不仅能够有效预测作业的运行时间,而且能够探索配置参数空间的未知领域,为作业寻找到一个合适的最优配置。

1 配置参数智能优化方法

Spark作业配置参数智能优化方法由两部分组成:一是,作业性能预测模型;二是,配置参数优化算法。两者的关系如图1所示。在作业类型和数据规模已知的前提下为作业提供推荐配置。配置参数优化算法将参数空间中采样得到的新配置输入到作业性能预测模型,作业性能预测模型返回预测结果以指导配置参数优化算法,该过程持续进行,直至收敛到最优配置。

图1 配置参数智能优化方法 Fig. 1 Smart optimization of configuration parameters

2 作业性能预测模型 2.1 作业性能模型

Spark作业性能的形式化表达[12]如式(1)所示:

$Per\!f = F(p,d,r,c)$ (1)

式中:Perf 代表作业的运行性能,本文指Spark作业的运行时间;p为某个作业本身;d为作业待处理的数据规模;r为集群可用的硬件资源;c为作业提交时的配置参数。本文主要探讨对于某个作业p,在硬件资源r充分的条件下,待处理的数据规模d和配置参数c对作业运行性能的影响。

2.2 作业配置参数选择

Spark中有上百个配置参数,选择所有配置参数建立作业性能预测模型显得不切实际。一方面,参数过多会提高模型建立的复杂度,引起维度灾难;另一方面,盲目选择过多非显著影响的配置参数反而会降低模型预测性能。本文在选择配置参数时考虑以下原则。

1)所选配置参数能够决定Spark作业运行期间可使用的资源情况。原因在于资源对作业的运行性能有举足轻重的影响。

2)所选配置参数能够影响作业运行时的并行度。原因在于即使在资源充分的情况下,过低的并行度会导致作业无法充分利用已有资源,同样会导致较低的运行性能。

3)参考已有的相关文献[8,14]研究所验证的重要配置参数。

基于以上原则,本文选择的Spark作业配置参数如下:

1)spark.driver.cores:指定分配给driver进程的CPU核数,影响作业可使用的资源。

2)spark.driver.memory:指定分配给driver进程的内存总量,影响作业可使用的资源。

3)spark.executor.instances:指定executor的实例个数,影响作业可使用的资源和并行度。

4)spark.executor.cores:指定每个executor可使用的CPU核数,影响作业可使用的资源。

5)spark.executor.memory:指定每个executor可使用的内存总量,影响作业可使用的资源。

6)spark.default.parallelism:指定每个stage的默认task数量,影响作业的并行度。

2.3 作业采集与预处理

本文使用BigDataBench[15]生成待处理的数据集,在配置参数空间采样,基于Spark on Yarn平台提交作业,建立典型的Spark作业运行数据集。图2(a)中展示了Spark作业采集与预处理的主要过程。

图2 Spark作业性能预测模型建立过程 Fig. 2 Process of establishing Spark jobs’ performance prediction model

由于Spark各配置参数的取值范围不统一,在建模前需要对每个配置参数的数值进行归一化处理,如式(2)所示:

${C_j} = \frac{{{C_{j,{\rm ori}}} - {C_{j,\min }}}}{{{C_{j,{\rm max}}} - {C_{j,\min }}}}$ (2)

式中, ${C_{j,{\rm ori}}}$ 为该配置参数的原始值, ${C_{j,\max }}$ 为该配置参数所有取值中的最大值, ${C_{j,\min }}$ 为该配置参数所有取值中的最小值。归一化可以保证每个配置参数的值都缩放到相同的数值范围,确保数据处于同一数量级,提高不同特征数据的可比性。

2.4 作业性能预测模型建立与评估

本文采用支持向量回归算法建立Spark作业性能预测模型,自变量为Spark作业的配置参数和数据规模组成的向量,因变量为Spark作业的运行时间向量。选择径向基函数 $K({x_i},x)$ 作为本次训练的核函数:

$K({x_i},x) = \exp \left( - {\frac{{||{x_i} - x||}}{{2{\sigma ^2}}}^2}\right)$ (3)

径向基函数可将低维空间映射至高维空间,对非线性数据的效果较好。

图2(b)中展示Spark作业性能预测模型的建立过程。首先对经过预处理的原始数据集进行划分,将原始数据集中80%的数据划分为训练集,另外20%的数据划分为测试集。为了避免模型过拟合,采用十折交叉验证,对训练集进行不重复抽样,将其划分为10份规模相同的子集,依次选其中1份作为验证集,其余9份作为训练集,最后选择交叉验证误差最小的模型。

Spark作业性能预测模型的主要评估指标有:

1)R-square( ${R^2}$ )。 ${R^2}$ 值越接近1,表明作业性能预测模型的拟合程度越好。假设数据集包括 ${y_1}, $ ${y_2}, \cdots ,{y_n}$ ,共n个观察值,相对应的模型预测值为 ${f_1},{f_2}, \cdots ,{f_n}$ ,平均观察值为 $\bar y = \dfrac{1}{n}\displaystyle \sum\limits_{i = 1}^n {{y_i}} $ ,则有:

$ {R^2}{\rm{ = }}1 - \frac{{\displaystyle \sum\limits_{i = 1}^n {{{({y_i} - {f_i})}^2}} }}{{\displaystyle \sum\limits_{i = 1}^n {{{({y_i} - \bar y)}^2}} }} $ (4)

2)均方根误差(RMSE)。RMSE值越小表示作业性能预测模型的精确度越高。RMSE是误差平方和的均值再开方,即:

${\rm RMSE} = \sqrt {\frac{1}{n}\sum\limits_{i = 1}^n {{{({y_i} - {f_i})}^2}} } $ (5)

3)平均绝对误差(MAE)。即绝对误差的平均值:

${\rm MAE} = \frac{1}{n}\sum\limits_{i = 1}^n {|{y_i} - {f_i}|} $ (6)
3 配置参数优化算法

基于第2节中建立的Spark作业性能预测模型设计Spark作业配置参数优化算法,获取具有较好作业适应性的配置参数,提升作业运行性能。

作业的配置参数空间可以用一个2维矩阵表示,每个配置参数用该矩阵的一行表示,即向量 ${{{C}}_i}$ $i = 1,2, \cdots ,N$ ,向量中的元素取值代表该配置参数的某个取值。例如,向量 ${{{C}}_1}$ 表示配置参数spark.driver.cores, ${C_{1,1}} = 2$ 表示spark.driver.cores的取值为2。寻找最优配置时在每个配置参数的参数空间中进行采样,然后对每个配置参数的值进行组合,因此该问题最终转换成一个组合优化问题。

3.1 相关定义

邻域[16]:假设D为整个参数空间,共有N个配置参数,参数空间D中第i个配置参数的上下限为 $[{l_i},{u_i}]$ ,当前解 ${{s}}$ 的邻域 ${N_{D,p}}(s)$ 由原参数空间缩小p倍组成,即:

$ {N_{D,p}}({ s}) = \left\{ {{\textit{z}} \in D{ \Big| \Big. } |{{\textit{z}}_i} - {s_i}| < {p^{\frac{1}{n}}} \cdot ({u_i} - {l_i})} \right\} $ (7)

邻居解:当前解的相邻解。若当前解向量 ${{s}}$ $[{C_{1,x}},{C_{2,y}},{C_{3,{\textit{z}}}}, \cdots ,{C_{N,\alpha }}]$ ,邻居解的取值集合 $U({ s})$ 则为:

$\begin{aligned}[b] U({ s}) =& \{ [{C_{{\rm{1,}}x \pm {q_1}}},{C_{{\rm{2,}}y}},{C_{{\rm{3,}}{\textit{z}}}}, \cdots ,{C_{N,\alpha }}], \\ & [{C_{{\rm{1,}}x}},{C_{{\rm{2,}}y \pm {q_2}}},{C_{{\rm{3,}}{\textit{z}}}}, \cdots ,{C_{N,\alpha }}], \cdots ,\;\\ & [{C_{{\rm{1,}}x}},{C_{{\rm{2,}}y}},{C_{{\rm{3,}}{\textit{z}}}}, \cdots ,{C_{N,\alpha \pm {q_N}}}]\} \end{aligned} $ (8)

式中, ${q_1},{q_2}, \cdots ,{q_N}$ 为每个配置参数的搜索步长。

适应值:根据输入解计算得到的输出结果,本文中指作业性能预测模型输出的预测时间值。

3.2 优化算法

最优配置参数的求解过程本质上是对解空间进行搜索,为了提高搜索效率,本文基于以下启发式算法求解最优配置参数。

爬山算法(HC)[17]:该算法随机选择一个采样点作为初始解开始迭代,迭代过程中比较初始解与其所有的邻居解,如果邻居解更优则进行替换,直至满足收敛条件。为避免算法求解过程中陷入局部最优,本文在实现中将算法分为局部搜索和全局搜索两部分。局部搜索中使用更优的邻居解替代当前解,获取局部最优解;再通过全局搜索得到目标最优解。

模拟退火算法(SA)[18]:该算法通过模拟热力学中粒子系统的降温过程求解优化问题。本文在实现中将算法分为内外两层循环,内循环终止条件由循环次数决定,外循环终止条件由终止温度及温度下降速率决定。求解过程中,如果新解比当前解更优,则接受当前解;如果新解比当前解更差,则以Metropolis准则[18]接受当前解。

递归随机搜索算法(RRS)[16]:该算法仅对可能包含最优解的期望样本空间进行递归随机搜索以获取最优解。本文在参数空间随机采样一定样本以构成期望样本空间。从该期望样本空间中选取最优样本,并对该最优样本的邻域进行递归随机搜索,以发现更好的样本。如果连续搜索到一定次数未发现更优样本,则缩小邻域,直至邻域小于某个阈值,则退出该期望样本空间的局部搜索并重复上述过程。

粒子群算法(PSO)[19]:该算法通过群体中个体之间的协作和信息共享寻找最优解。本文在实现中首先初始化粒子群,每个粒子的初速度为零,位置向量代表配置参数的一个可行解,在配置参数空间采样生成,根据位置向量计算每个粒子的适应值,并将粒子的自身历史最优位置初始化为粒子的当前位置。在迭代过程中,粒子根据历史经验信息更新自身的速度向量及位置向量逼近最优解。

4 实验结果与分析

本文的实验环境是由4个节点组成的“一主三从”的Spark on Yarn架构集群,Spark版本2.2.0,Yarn版本2.6.5。各节点资源配置为操作系统CentOS Linux release 7.4.1708、CPU可用核数17、内存50 GB。实验主要包含:

1)作业性能预测模型评估。主要对性能预测模型的有效性和准确性进行评估。

2)配置参数优化算法对比分析。主要比较基于4种算法实现本文的配置参数优化算法对于最优解的求解质量。

3)配置参数智能优化方法开销评估。主要评估方法的时间开销。

4)作业性能优化对比。主要比较基于本文的智能优化配置和经验优化配置的作业运行性能。

根据作业运行期间对资源的占用情况将作业分为IO密集型、CPU密集型、混合负载型,本文选择典型的3类作业Sort、WordCount、K-Means,以下实验均基于这3类作业完成。

4.1 作业性能预测模型评估

分别在集群上运行Sort、WordCount、K-Means这3类作业,采集运行时间的平均值,与模型的预测结果进行对比,如图3所示。

图3 预测值与真实值对比 Fig. 3 Comparison between the predicted value and the real value

图3中可以看出,模型预测结果和实际运行时间存在一定误差,但是从整体趋势上看,两者较为贴合。实验结果说明了Spark作业性能预测模型的有效性。

通常情况下,训练数据集规模越大,模型的准确性也会越高。3类典型作业下,通过改变训练数据集的规模观察评估指标 ${R^2}$ 、MAE、RMSE值的变化情况,实验结果如表1所示。

表1 作业性能预测模型评估指标 Tab. 1 Evaluation index of jobs’ performance prediction model

表1中可以看出:训练数据集规模从40%增加到80%时,WordCount回归模型的平均绝对误差MAE下降了约1.6%,K-Means回归模型的平均绝对误差MAE下降了3.3%左右,二者回归模型的拟合效果均有不同程度的提升。而Sort回归模型的误差有轻微增加,但 ${R^2}$ 值基本稳定在0.94左右。实验结果说明了Spark作业性能预测模型的准确性在实用场景下可接受。

4.2 配置参数优化算法对比分析

爬山算法(HC)、粒子群算法(PSO)、递归随机搜索算法(RRS)以及模拟退火算法(SA)等启发式算法本质上是基于贪心策略的思想求解最优值。为避免求解过程陷入局部最优,在求解过程中引入随机性,意味着收敛结果具备不确定性。因此,对基于上述4种算法实现本文配置参数优化算法的求解质量进行对比分析。

求解质量主要包含以下两方面:

1)收敛结果平均值。平均值越小表示算法收敛结果越好。

2)收敛结果标准差。标准差越小表示算法稳定性越好。

将以上4种算法分别在不同的作业上运行500次,计算收敛结果平均值与标准差,结果如图4所示,图4中,误差线代表收敛结果的标准差。

图4 配置参数优化算法求解质量比较 Fig. 4 Quality comparison of optimization algorithm for configuration parameters

图4可知:从收敛结果来看,爬山算法、递归随机搜索算法以及模拟退火算法在3类作业上表现无太大差异,而粒子群算法在作业K-Means上的收敛结果最差。从算法稳定性来看,模拟退火算法在作业WordCount和作业K-Means上的稳定性很好,标准差几乎为零,但是其在作业Sort上表现较差。只有递归随机搜索算法在以上3类作业上的标准差都较小。

综上而言,相比其他3种算法,递归随机搜索算法在3类作业上的求解质量最好,对不同作业的适应性较强。

4.3 配置参数智能优化方法开销评估

基于第4.2节结论,本文最终的Spark作业配置参数智能优化方法由作业性能预测模型和基于递归随机搜索算法的配置参数优化算法构成。将本文的配置参数智能优化方法应用到Sort、WordCount、K-Means这3类作业上,每类作业执行500次最优配置参数求解,计算得到平均每次运行的时间开销见表2

表2 配置参数智能优化方法时间开销 Tab. 2 Time cost of smart optimization method for configuration parameters

表2中可以看出,配置参数智能优化方法的时间开销都在毫秒级,表明可以在秒级时间内为作业寻找到最优的配置参数。

4.4 作业性能优化对比

经验优化配置是指专业人员基于调优规则[12]以及业务经验为作业设置的参数值。基于本文的智能优化配置和基于经验优化配置的作业运行性能对比结果,如图5所示。

图5 智能优化配置与经验优化配置的作业性能对比 Fig. 5 Jobs’ performance comparison between smart optimization and experienced optimization

与经验优化配置相比,智能优化配置为3类作业分别带来了4%、15%、22%的平均性能提升,说明智能优化配置总体优化效果较好。此外,智能优化过程速度更快、效率更高,解决了传统调优效率低下的问题。

5 结束语

利用支持向量回归算法对典型Spark作业运行数据集构建作业性能预测模型,基于该模型设计并实现了配置参数智能优化算法,进而达到Spark作业性能优化的目的。实验结果表明与传统优化配置方法相比,智能优化配置对Spark作业性能有更好的提升效果。在下一步研究中,将考虑影响作业性能的其他因素,如磁盘的IO速度等,并关注多个作业之间存在资源竞争时如何为每个作业推荐合适的配置。

参考文献
[1]
Zaharia M,Chowdhury M,Franklin M J,et al. Spark:Cluster computing with working sets[J]. HotCloud, 2010, 10(10): 95.
[2]
Zaharia M,Chowdhury M,Das T,et al.Resilient distributed datasets:A fault-tolerant abstraction for in-memory cluster computing[C]//Proceedings of the Usenix Conference on Networked Systems Design and Implementation.Berkeley:USENIX Association,2012:15–28.
[3]
Herodotou H,Lim H,Luo G,et al.Starfish:A self-tuning system for big data analytics[C]//Proceedings of the CIDR 2011 5th Biennial Conference on Innovative Data Systems Research.Asilomar:CIDR,2011:261–272.
[4]
Yigitbasi N,Willke T L,Liao G D,et al.Towards machine learning-based auto-tuning of MapReduce[C]//Proceedings of the 2013 IEEE 21st International Symposium on Modelling,Analysis and Simulation of Computer and Telecommunication Systems.San Francisco:IEEE,2013:11–20.
[5]
Zhou Shilong,Chen Xingshu,Luo Yonggang. Hadoop MapReduce job performance analysis and prediction based on grey-box model[J]. Journal of Sichuan University(Engineering Science Edition), 2014, 46(Supp1): 146-154. [周世龙,陈兴蜀,罗永刚. 基于灰盒模型的Hadoop MapReduce job参数性能分析与预测[J]. 四川大学学报(工程科学版), 2014, 46(增刊1): 146-154. DOI:10.15961/j.jsuese.2014.s1.025]
[6]
Chen Yingzhi.Analysis and optimization of memory scheduling algorithm of Spark shuffle[D].Hangzhou:Zhejiang University,2016.
陈英芝.Spark Shuffle的内存调度算法分析及优化[D].杭州:浙江大学,2016.
[7]
Zhang H,Liu Z X,Wang L Q.Tuning performance of Spark programs[C]//Proceedings of the 2018 IEEE International Conference on Cloud Engineering (IC2E).Orlando:IEEE,2018:282–285.
[8]
Petridis P,Gounaris A,Torres J.Spark parameter tuning via trial-and-error[M]//Advances in Big Data.Cham:Springer International Publishing,2016:226–237.
[9]
Li M,Tan J,Wang Y D,et al.SparkBench:A comprehensive benchmarking suite for in memory data analytic platform Spark[C]//Proceedings of the 12th ACM International Conference on Computing Frontiers—CF’15.New York:ACM,2015:53.
[10]
Chao Z M,Shi S F,Gao H,et al. A gray-box performance model for Apache Spark[J]. Future Generation Computer Systems, 2018, 89: 58-67. DOI:10.1016/j.future.2018.06.032
[11]
Chen Qiao’an,Li Feng,Cao Yue,et al. Parameter optimization for Spark jobs based on runtime data analysis[J]. Computer Engineering & Science, 2016, 38(1): 11-19. [陈侨安,李峰,曹越,等. 基于运行数据分析的Spark任务参数优化[J]. 计算机工程与科学, 2016, 38(1): 11-19. DOI:10.3969/j.issn.1007-130X.2016.01.002]
[12]
Liao Husheng,Huang Shanshan,Xu Jungang,et al. Survey on performance optimization technologies for Spark[J]. Computer Science, 2018, 45(7): 7-15. [廖湖声,黄珊珊,徐俊刚,等. Spark性能优化技术研究综述[J]. 计算机科学, 2018, 45(7): 7-15. DOI:10.11986/j.issn.1002-137X.2018.07.002]
[13]
Wang G L,Xu J G,He B.A novel method for tuning configuration parameters of Spark based on machine learning[C]//Proceedings of the 2016 IEEE 18th International Conference on High Performance Computing and Communications; IEEE 14th International Conference on Smart City; IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS).Sydney:IEEE,2016:586–593.
[14]
Zhao Y,Hu F,Chen H P.An adaptive tuning strategy on Spark based on in-memory computation characteristics[C]// Proceedings of the 2016 18th International Conference on Advanced Communication Technology (ICACT).Pyeongchang:IEEE,2016:484–488.
[15]
Gao W,Zhu Y,Jia Z,et al.Bigdatabench:A big data benchmark suite from web search engines[EB/OL].(2013–07–01)[2019–03–20].https://arxiv.org/pdf/1307.0320.pdf.
[16]
Ye T,Kalyanaraman S. A recursive random search algorithm for network parameter optimization[J]. ACM SIGMETRICS Performance Evaluation Review, 2004, 32(3): 44-53. DOI:10.1145/1052305.1052306
[17]
Boyan J,Moore A W. Learning evaluation functions to improve optimization by local search[J]. Journal of Machine Learning Research, 2000, 1: 77-112.
[18]
van Laarhoven P J M,Aarts E H L.Simulated annealing[M]//Simulated Annealing:Theory and Applications.Dordrecht:Springer Netherlands,1987:7–15.
[19]
Shi Y,Eberhart R C.Empirical study of particle swarm optimization[C]//Proceedings of the 1999 Congress on Evolutionary Computation—CEC99(Cat.No.99TH8406).Washington:IEEE,1999:1945–1950.