决策树模型预测Spark SQL作业执行时间的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第38卷第4期 计算机应用与软件
Vol 38No.42021年4月
ComputerApplicationsandSoftware
Apr.2021
决策树模型预测SparkSQL作业执行时间的方法
吴恩慈
(上海淇毓信息科技有限公司 上海200120)
收稿日期:2019-07-31。

吴恩慈,高工,主研领域:大数据实时计算。

摘 要 SparkSQL在超大规模集群和数据集上存在易用性问题,如Catalyst最优执行计划的选择,ShufflePar tition的配置对性能有较大的影响,数据倾斜往往导致集群性能变差。

为了在作业执行之前准确预测执行时间,更加充分地使用运行时数据,选择最优执行计划,提出通过决策树及其组合算法的回归模型预测作业执行时间的方法。

采用交叉验证方法优化模型超参数,通过剪枝和组合算法优化过度拟合问题,选择相关指标评估机器学习
模型预测的准确性。

实验表明,梯度提升树回归模型预测作业执行时间的R2超过0.8,且能够满足在线预测的
实时性要求,模型评估指标达到预期效果,相对于线性回归模型的评估指标具有一定的优势。

关键词 任务调度 计算引擎 作业特征 执行时间 预测模型 决策树
中图分类号 TP311 文献标志码 A DOI:10.3969/j.issn.1000 386x.2021.04.005
METHODOFPREDICTINGSPARKSQLJOBEXECUTIONTIME
BYDECISIONTREEMODEL
WuEnci
(ShanghaiQiyuInformationTechnologyCo.,Ltd.,Shanghai200120,China)
Abstract SparkSQLimplementshigh speedcomputingandcomplexdatamining,butthereareproblemswitheaseofuseonverylargeclustersanddatasets.AswiththechoiceofCatalystoptimalexecutionplan,theconfigurationofShufflePartitionhasalargeimpactonperformance,anddataskewoftenleadstopoorclusterperformance.Thepurposeofthispaperistoaccuratelypredictexecutiontimebeforethejobisexecuted,tousetheruntimedatamorefully,andtoselectthebestexecutionplan.Aregressionmodelforpredictingjobexecutiontimebydecisiontreeanditscombinationalgorithmisproposed.Thecrossvalidationmethodwasusedtooptimizethemodelparameters.Thepruningandcombinationalgorithmwasusedtooptimizetheover fittingproblem,andtherelevantindicatorswereselectedtoevaluatetheaccuracyofthemachinelearningmodel.TheexperimentshowsthatGradientBoostingdecisiontreemodelpredicts
thattheR2
oftheexecutiontimeofthejobexceeds0.8,anditcanmeetthereal timerequirementsofonlineprediction.
Themodelevaluationindexachievestheexpectedeffect,andhascertainadvantagesovertheevaluationindexofthelinearregressionmodel.
Keywords Taskscheduling Calculationengine Jobcharacteristics Executiontime Predictionmodel Decisiontree 
0 引 言
SparkSQL借助核心引擎将集群规模扩展到数千个节点,
Catalyst提供了基于规则和代价的优化器,把数据仓库的计算能力推向新的高度。

但在超大规模数据集上存在易用性和可扩展性的问题,SQL或Dataset
程序在执行之前被解析成逻辑计划,然后生成可执行
的物理计划,不同的执行计划对性能有很大的影响。

若能够准确预测作业的执行时间,可以更加充分地运用作业运行时获取的数据,动态地选择一个最佳的物理执行计划。

例如基于作业运行时Shuffle信息,根据机器学习模型预测结果自动为每个作业设置合适的ShufflePartition值,调整可能发生数据倾斜的任
第4期 吴恩慈:决策树模型预测SparkSQL作业执行时间的方法25
务并行度,动态地调整执行计划,能够有效提升集群性能。

1 相关工作
文献[1]研究了预测Hadoop分布式存储系统中查询执行时间的方法,采用KCCA统计模型关联查询输出大小与执行时间,通过最近的类似查询的性能预测作业执行时间。

文献[2]提出了一种混合模型估计不同类型算子的性能,在关系型数据库中有良好的表现。

文献[3]使用样本数据模拟集群中不同节点的执行性能,存在Shuffle开销的IO密集型作业的预测精度较低。

文献[4]提出了一种多元线性回归方法,根据Spark性能指标预测集群性能,模型指标R2小于平均值。

文献[5]研究了更改Spark集群配置参数对性能的影响,在模型训练阶段捕获关键性能指标,允许用户询问配置参数对性能的影响。

文献[6]通过分析MapReduce任务执行过程中收集的数据,提出两阶段回归方法预测任务的完成时间。

文献[7]提出了一种Spark应用程序的预测框架,使用非负最小二乘法匹配给定数据的最佳模型和参数。

本文通过决策树回归模型预测作业执行时间的方法不同于上述文献,本文基于Spark分布式计算引擎,提取作业特征与选择指标时考虑了SQL作业存在的宽依赖、各阶段间Shuffle开销,以及集群的弹性配置。

通过训练决策树及其组合算法生成的机器学习模型能够准确地预测作业的执行时间,主要完成了三方面的工作:(1)研究了作业调度策略与计算引擎,基于核心引擎构建机器学习应用模块,使复杂的模型训练与测试过程都变得易于实现。

(2)提供了模型的运行原理与特征数据的收集方法,通过Pipeline机制构建机器学习模型工作流。

(3)通过交叉验证方法进行超参数调优,采用剪枝和组合算法优化过度拟合问题,确保在训练集上训练出泛化能力较强的模型。

2 调度策略与计算引擎
2.1 作业调度策略与流程
机器学习模型的训练需要在多次迭代后获得足够小的误差才会停止[8]。

Spark任务调度策略简化了机器学习模型训练和测试的过程,DAGScheduler实现了相关组件在内存中无缝集成与任务协调,根据依赖对Pipeline进行优化实现对作业并行计算。

应用程序获取计算资源的策略包括两种,一种是把应用程序运行在尽可能多的Worker上,能够充分使用集群资源,有利于数据处理的本地性;另一种是应用程序运行在尽可能少的Worker上,适合CPU密集型而内存使用较少的场景。

如果任务处于作业开始的调度阶段内,对应的RDD分区首选运行位置的数据本地性为NodeLocal;如果任务处于非作业开头的调度阶段,根据父调度阶段运行的位置得到首选位置,若Executor处于活动状态,数据本地性为ProcessLocal。

图1为作业调度流程图。

调度程序识别出RDD之间依赖关系,应用程序编译为作业执行计划,划分阶段的主要依据是当前的计算因子输入是否确定。

TaskScheduler接收任务集合,创建任务集合管理器添加到调度池中,将任务的调度交给后端调度接口处理。

按照任务调度方法对调度池中的所有任务集合管理器进行排序,根据数据本地性原则分配资源,在每个分配的节点上运行任务。

任务计算的中间结果与最终结果将保存到存储系统。

JobListener对作业中每个任务执行成功或失败进行监听,通过监听事件向DAGScheduler汇报任务执行情况,对于失败的任务存在重试与容错
机制。

图1 作业调度流程
2.2 计算引擎与内存管理
Spark计算引擎在内存中完成多步骤的迭代计算,提升了机器学习应用的性能[9]。

计算引擎主要包括执行内存与Shuffle两部分,Shuffle性能优劣直接决定了计算引擎的性能和吞吐量。

执行内存包括在JVM堆上分配的执行内存池和在操作系统内存中分配的Tungsten。

操作系统内存是整个架构的基础,无论执行内存如何分配,都离不开系统内存的支持。

操作系统通过确定数据所在的页缓存,并使用页缓存的偏移量和数据的长度读取数据,避免了JVM加载额外类文件和对象,降低了GC扫描与回收的频率。

内存管理器负责申请和释放执行内存,执行内存的消费者组件包括3种,任务中间过程输出数据在JVM堆上进行缓存和聚合等处理,操作系统内存中进行溢出和持久化处
26
计算机应用与软件
2021年
理的Shuffle操作,以及键值对存储到连续的内存块的批处理。

图2为内存申请与分配原理图。

Tungsten是一种内存分配与释放的实现方式,直接操作系统内存实现类似于操作系统的页缓存的M
emoryBlock数据结构,准确地申请和释放堆外内存、计算序列化数据占用的
空间,降低了管理的难度和误差[10]。

内存块中的数据
位于JVM堆内存或者堆外内存,主要包括obj、offset和length三个属性。

obj属性保存了对象在JVM堆中的地址,
offset属性保存了页缓存的起始地址相对于对象在JVM堆中地址的偏移量,length属性保存了页缓存的大小。


ungsten处于堆内内存模式时,数据作为对象存储在J
VM堆中,从堆内找到对象使用offset定位数据的具体位置。

处于堆外内存模式时,通过offset属性从堆外内存中定位数据,从obj和offset定位的起始位置开始获取固定长度的连续内存块。

若申请的内存块大于等于1M
B,且MemoryBufferPools中存在指定大小的内存块时,从内存缓存池中获取,否则单独创建
内存块用于分配。

图2 内存申请与分配原理
3 预测模型构建
3.1 预测模型的运行原理
图3为作业执行时间预测原理图。

预测模型的响应时间需要满足在线预测的实时性要求,能够并行化操作和处理更大规模的数据集与更加复杂的逻辑。

功能包括收集作业运行时特征与指标、构建模型训练与测试过程、预测作业的执行时间。

作业被编译生成DAG时,在调度程序中注入计数器计算每个阶段所需特征。

运行SQL作业实现模型离线训练,训练阶段的目标是从作业中提取特征向量X,以及相应的性能度量指标向量Y。

如果一个阶段有N个Task并行执行
将为该阶段收集N组特征,
特征收集器的输出是特征向量X。

特征类别包括数据集规模、Shuffle和IO特征,以及集群配置等。

模型的输入包括特征向量和度量指标,输出是特征和指标之间关系的回归模型,通过
比较实际值和预测值评估模型预测的准确性。

图3 作业执行时间预测原理
通过解析作业执行计划提取特征向量,机器学习模型预测执行计划中每个阶段执行时间,根据每个阶段的执行时间估计作业的执行时间。


AG中阶段是根据RDD依赖关系运行,某个阶段的执行时间是此阶段开始的最早任务的开始时间,与最后执行任务的完成时间之间的间隔,如式(1)所示。

FTST表示在数据分区上某个阶段第一个任务的开始执行时间,LTET表示在某个阶段最后一个任务的结束时间。

式(2)给出如何根据每个阶段的估计执行时间预测整个作业的执行时间,其中作业有N个阶段。

TStage(i)=FTSFi-LTETi
(1)TJob=∑N
i=
1Tstage
(i)(2)
3.2 特征与指标的收集方法
表1为Task特征向量X来源与取值示例。

机器学习任务中特征选择是重要的数据预理过程,剔除冗余和无关的特征,在高维数据分析中可以提升机器学习的性能。

特征选择方法主要分为监督和无监督两种。

卡方选择是统计学上常用的特征选择方法,通过特征和真实标签之间执行卡方检验确定关联度。

编号1~3表征了网络流量特征,编号4~11表征了作业执行过程中的Shuffle和IO特征,编号12~15表征了数据规模特征。

作业特征与指标数据的提取主要借助ListenerBus机制和MetricsSystem,采用异步线程将事件提交到对应的事件监听器。

作业数据集获取方法包括三种:运行时作业调度页面、通过REST接口获取度量信息、借助外部监控工具。

本文通过REST接口方式提取相关数据。

第4期 吴恩慈:决策树模型预测SparkSQL作业执行时间的方法27
表1 特征向量来源与取值
编号Task特征向量X取值示例/ms1ResultSize51446
2MemoryBytesSpilled26057
3DiskBytesSpilled50467
4ShuffleRemoteBlocks89800
5ShuffleLocalBlocks88003
6ShuffleRemoteBytesRead69689
7ShuffleRemoteBytes25659
8ShuffleLocalBytesRead32388
9ShuffleTotalRecordsRead44783
10ShuffleBytesWritten72412
11ShuffleRecordsWritten19740
12InputBytesRead99251
13InputRecordsRead22214
14OutputBytesWritten84343
15OutputRecordsWritten19182
表2为Task度量指标Y来源与取值示例。

选取的度量指标能够体现不同规模的数据集、不同类型算子的Shuffle和IO操作,以及网络流量方面的时间开销。

充分考虑了作业执行时间指标的动态性,每个作业执行计划的可用资源不同,作业并行运行时存在资源竞争,作业的GC时间和数据序列化与反序列化时间,以及网络传输存在一定的随机性与关联性,例如存在Shuffle过程算子的IO操作往往比较耗时。

表2 度量指标来源与取值
编号Task特征向量Y示例/ms
1GettingResultTime62815
2ExecutorDeserializeTime97184
3ExecutorDeserializeCPU84512
4ExecutorRunTime81131
5ExecutorCPUTime45714
6JVMGCTime51650
7ResultSerializationTime38569
3.3 预测模型的评估指标
决策树可以使用复杂的非线性模型拟合数据,通过改变不纯度的度量方法用于回归分析。

类似线性回归模型使用对应的损失函数,决策树用于回归时使用不纯度度量方法[13]。

方差是用于量度回归模型的节点处标签均匀性的量度。

如式(3)所示,均方根误差RMSE是均方误差MSE的平方根,精确度会进一步放大,越接近零表示预测越准确,wTx(i)是预测值,y(i)是所有实际值。

如式(4)所示,平均绝对误差MAE是预测值与实际值之差的绝对值的平均值,MAE避免正负误差相互抵消,更好地反映预测值误差的实际情况。

如式(5)所示,拟合优度(R2)用来评估模型拟合数据的好坏程度,测量目标变量的变异度,表示可以根据自变量的变化来解释因变量的变体部分[14]。

R2越接近1,表示自变量对因变量的解释程度越高。

RMSE=∑n
i=1
(wTx(i)-y(i))2

(3)MAE=∑

i=1
wTx(i)-y(i)

(4)
R2=1-
∑N
i=1
(y

-y^


∑N
i=1
(y

-y


(5)4 过度拟合问题
4.1 过度拟合原因与对策分析
决策树易于解释和无须特征缩放,是分类和回归机器学习的有效方法[11]。

决策树生成是一种贪婪算法,通过从一组可能的分割中选择最佳分割,贪婪地选择每个分区,以最大化树节点处的信息增益[12]。

从根节点开始计算节点所有可能特征的信息增益,选择信息增益最大的特征,然后递归调用上述方法构造子节点直到所有特征的信息增益不再增加。

当决策树中节点下的所有记录属于同一个类,或者所有记录属性具有相同值时,生长过程终止。

递归算法生成的决策树通常具有过拟合问题,该问题可以从两个方面进行优化。

通过剪枝主动去掉一些分支来降低过拟合的风险,该方法的关键是如何确定最优参数,通过调整参数提前在节点处停止递归构造能够有效避免过度拟合,可调整的参数包括MaxDepth与MinInfoGain等。

另一种方法是通过组合算法在一定程度上抵消过度拟合,SparkML支持RandomForest和GradientBoostedTrees两种决策树组合算法。

4.2 交叉验证法优化模型参数
通过最小化决策树的损失函数实现剪枝,在一定
28
计算机应用与软件2021年
程度上能够避免过度拟合,当节点深度等于MaxDepth参数时决策树停止生长。

MinInfoGain参数是拆分必须改善信息增益的最小值,没有分割候选项导致信息增益大于最小值时决策树停止生长。

机器学习能够通过数据集找到特定问题的最佳超参数,可以在独立的Estimator中完成,或者在包含多种算法和特征选择的工作流中完成。

通过重复进行模型训练和测试步骤,采用随机化抽样方法选定K个相似的互斥子集,每个子集尽可能地保持数据分布的一致性,分别训练和测试模型,通过取K个模型的均值避免过度拟合问题,该过程称为交叉验证,评估结果的稳定性和保真性在很大程度上依赖K的取值。

采用交叉验证方法评估模型参数时,计算由估计器拟合模型的不同数据对的平均评估指数,使用此参数重新拟合整个数据集的估算器,找到最佳配置参数,在整个训练集上训练具有较强泛化能力和相对较小误差的最佳模型。

当交叉验证方法的训练成本较高时,可使用TrainValidationSplit方法进行超参数调整,创建单个训练和测试数据集对。

使用训练比例参数将数据集拆分为两部分,常用75%生成一组训练和测试数据集对,使用最佳参数配置和完整数据集拟合估计器。

交叉验证方法每个参数执行K次评估,TrainValidationSplit方法每个参数组合仅评估一次,训练数据集不够大时结果的可靠性较低。

4.3 组合算法优化过度拟合
随机森林采用Bagging思想,并行训练一组决策树集,模型训练过程是随机的,在每次迭代时对原始数据集进行二次采样,在每个树节点处分割不同的随机特征子集。

先对节点随机选择包含K个属性的子集再选择最优属性,参数控制了随机性的引入程度。

随机森林并不基于模型残差来构建集成模型,能够取得较低的方差,预测结果聚合了决策树集的预测。

将每棵树的预测计为一类投票,获得投票最多的类别作为分类预测结果,平均值用作预测回归结果,能够捕获非线性特征提高判别精度,在一定程度上避免过拟合。

梯度提升树算法是迭代训练决策树,比随机森林需要更长的训练时间。

每次迭代使用当前数据集来预测每个训练实例的标签,将预测结果与真实标签进行比较,然后重新标记数据集[15]。

在下一次迭代训练中决策树将纠正先前的偏差,并可以进一步减少每次迭代训练数据的偏差,重新标记实例的机制由损失函数确定。

表3为SparkML梯度提升树支持的损失函数
类型,N表示实例数,y

是实例的标签,x

是实例的特
征,F(x

)是模型预测标签。

梯度提升树根据观测值对预测结果进行调整,容易受到噪声点的影响,在训练时使用RunWithValidation方法进行验证,当验证错误的改进不超过策略设置的容差时停止训练,能够有效地防止过度拟合。

表3 梯度提升树损失函数
损失函数类型任务公式
均方误差回归∑N
i=1
(y

-F(x

))2
绝对误差回归∑N
i=1


-F(x


5 实 验
5.1 SQL作业实验过程
实验环境的集群配置11个计算节点,每个节点配置16内核、32GB内存、512GBSSD、万兆网卡。

每个节点上以独立模式运行Spark2.0,数据存储在HDFS2.6。

决策树回归模型的超参数配置如表4所示,包括模型训练、度量方法和缓存策略等,超参数是通过交叉验证方法提取的最优参数。

调整MaxDepth与MinInfoGain训练参数提前在节点处停止递归构造避免过度拟合。

表4 决策树回归模型超参数
图4为使用SparkBench模拟SparkSQL作业生成测试数据集规模信息,数据集包含约1000万个实例,每个实例有50个属性。

测试设定的应用场景与实际业务场景类似,SQL查询使用模拟生成的电子商务系统的订单数据,涵盖了CPU、内存、Shuffle和IO密集型工作负载。

在此数据集上进行SparkSQL工作负载测试,包括Join与Groupby算子的实验。

第4期
吴恩慈:决策树模型预测SparkSQL作业执行时间的方法
29
图4 SparkBench模拟数据集
图5为Join算子作业数据集,数据集中用于模型训练的比率是0.7。

Join算子作业共产生个236个Task,涉及到ShuffleRead(Write)数据量约1800MB。

计算过程中Input(Output)数据规模约1900MB,作业累计持续时间5min。

图5 Join算子作业数据集
图6为Groupby算子作业数据集,数据集中用于模型训练的比率是0.7。

Groupby算子作业共产生218个Task,涉及到ShuffleRead(Write)数据量约
1800MB。

计算过程中Input(Output)数据规模约1600MB,作业累计持续时间27s。

图6 Groupby算子作业数据集
5.2 预测模型准确率分析
表5展示了决策树及其组合算法回归模型评估指标,其中Join算子的3种决策树回归模型的预测精度
有明显的区别,梯度提升树回归模型的R2
超过0.8,
说明训练阶段选定的特征和模型有较好的匹配。

随机森林的指标存在一定的偏差,但优于决策树。

三种回归模型RMSE与MAE指标偏差也呈现相同的规律。

Join算子模型预测值与实际值对比如图7所示,其中:点号(·)表示真实值。

加号(+)表示预测值,可以观察到梯度提升树回归模型的拟合程度优于随机森林模型与决策树模型。

表5 决策树回归模型评估指标

oin算子决策树及其组合算法回归模型评估指标模型决策树随机森林梯度提升树对比图图7(a)图7(b)图7(c)RMSE6512.6481565110.9309752284.445138MAE
739.9664032462.149941644.5399606R

0.649332011
0.784036219
0.856853825
Groupby算子决策树及其组合算法回归模型评估指标模型决策树随机森林梯度提升树对比图图8(a)图8(b)图8(c)RMSE856.454374190.116828331.82696759MAE
150.284215845.9552214415.15777663R

0.546517941
0.877654362
0.881363947
(a)决策树
(b)随机森林
30
计算机应用与软件
2021

(c)梯度提升树
图7 Join算子模型预测值与实际值
由表5所示的Groupby算子的三种决策树回归模型指标可见,随机森林和梯度提升树的R2
都超过0.8,决策树的拟合程度较低,
RMSE与MAE指标偏差也呈现出相同的规律。

Groupby算子模型预测值与实际值对比如图8所示,
梯度提升树和随机森林的拟合程度相近,所选择的特征很好地表征运算符,决策树有较大
的偏差。

(a
)决策树
(b
)随机森林(c)梯度提升树
图8
 Groupby算子模型预测值与实际值三种其他回归模型评估指标如表6所示,线性回归使用弹性网正则化模型,广义线性回归模型采用高斯响应和身份链接功能训练模型。


oin算子三种回归模型的R2
都小于0.6,Groupby算子三种回归模型的R2都小于0.3,其中广义线性回归模型的指标要优于
其他两种,但都低于决策树回归模型的指标。

Join算子线性回归模型预测值与实际值如图9所示;Groupby算子线性回归模型预测值与实际值如图10所示。

可以看出,所选的特征数据与模型的匹配度较差。

表6 线性回归模型评估指标Join算子Logistic和线性回归模型评估指标
模型逻辑回归线性回归广义线性回归对比图图9(a)图9(b)图9(c)RMSE11540.310848001.7295247179.223722MAE
4199.3849373586.6904773003.498200R

0.101072471
0.470643043
0.573876127
Groupby算子Logistic和线性回归模型评估指标模型逻辑回归线性回归广义线性回归对比图图10(a)图10(b)图10(c)RMSE
1295.1612331078.60350411066.36118MAE
250.0497732254.2614160254.5795600R

0.037049106
0.280757568
0.296991943
(a)逻辑回归
第4期
吴恩慈:决策树模型预测SparkSQL作业执行时间的方法
31
(b
)线性回归
(c)广义线性回归
图9 Join
算子线性回归模型预测值与实际值
(a
)逻辑回归
(b
)线性回归
(c)广义线性回归
图10 Groupby算子线性回归模型预测值与实际值
6 结 语
通过收集表征SparkSQL作业特征的数据集和时间指标,训练决策树及其组合方法的回归模型,评估实验表明梯度提升树回归模型在预测S
parkSQL作业执行时间上有较好的表现,评估指标明显优于线性回归模型。

通过Join算子与Groupby算子的数据集测试,
梯度提升树回归模型的R

都超过0.8,指标RMSE与MAE也达到预期效果,且满足在线预测的实时性要求,表明模型预测SparkSQL作业的执行时间的方法具有准确性和实用性。

下一步将在此基础上,根据预测模型的输出结果,充分运用作业运行时数据,自适应地调整相关参数,选择最优的作业执行计划,提交给DAGScheduler执行,提升集群性能。

参考文献
[1]TanhaJ,SomerenMV.Semi supervisedself trainingforde
cisiontreeclassifiers[J].InternationalJournalofMachineLearningandCybernetics
,2017,8(1):355-370.[2]RíoSD,LópezV.OntheuseofMapReduceforimbalanced
bigdatausingRandomForest[J].InformationSciences,2014,285(3):112-137.
[3]TaranV,AlieninO,StirenkoS,etal.Performanceevalua
tionofdistributedcomputingenvironmentswithHadoopandSparkframeworks[C]//2017IEEEInternationalYoungSci entistsForumonAppliedPhysicsandEngineering(YSF).IEEE,2017:80-83.
[4]LiuQ,CaiWD.Estimationaccuracyonexecutiontimeof
run timetasksinaheterogeneousdistributedenvironment[J].Sensors,2016,16(9):1386-1401.
(下转第123页)
第4期 陈珍珍,等:基于能量收集的环境反向散射通信联合优化算法设计123
works[J].IEICETransactionsonFundamentalsofElectron ics,CommunicationsandComputerSciences,2017,100(6):
1353-1357.
[11]KelloggB,ParksA,GollakotaS,etal.Wi FiBackscatter:InternetconnectivityforRF powereddevices[J].ACMSIG COMMComputerCommunicationReview,2014,44(4):607
-618.
[12]DaskalakisSN,KimionisJ,ColladoA,etal.AmbientbackscatterersusingFMbroadcastingforlowcostandlow
powerwirelessapplications[J].IEEETransactionsonMi crowaveTheoryandTechniques,2017,65(12):5251-
5262. 
[13]WangG,GaoF,DouZ,etal.UplinkdetectionandBERanalysisforambientbackscattercommunicationsystems
[C]//2015IEEEGlobalCommunicationsConference(GLO BECOM),2015.
[14]LuK,WangG,QuF,etal.SignaldetectionandBERa nalysisforRF powereddevicesutilizingambientbackscatter[C]//InternationalConferenceonWirelessCommunications
&SignalProcessing(WCSP),2015.
[15]YangG,LiangYC,ZhangR,etal.Modulationintheair:BackscattercommunicationoverambientOFDMcarrier[J].
IEEETransactionsonCommunications,2017,66(3):1219
-1233.
[16]Pérez PenichetC,VarshneyA,HermansF,etal.Domul tiplebitspersymbolincreasethethroughputofambientbackscattercommunications?[C]//2016InternationalCon ferenceonEmbeddedWirelessSystems&Networks,2016:
355-360.
[17]KimTY,KimDI.OptimumMCSforhigh throughputlong rangeambientbackscattercommunicationnetworks[C]//2017IEEE18thInternationalWorkshoponSignalProcessing
AdvancesinWirelessCommunications(SPAWC),2017.[18]ShahST,ChoiKW,LeeTJ,etal.OutageprobabilityandthroughputanalysisofSWIPTenabledcognitiverelaynetwork
withambientbackscatter[J].IEEEInternetofThingsJour nal,2018,5(4):3198-3208.
[19]YangG,YuanD,LiangYC,etal.Optimalresourceallo cationinfull duplexambientbackscattercommunicationnet worksforwireless poweredIoT[J].IEEEInternetofThings
Journal,2019,6(2):2612-2625.
[20]LiuXL,GaoY,HuF.OptimaltimeschedulingschemeforwirelesspoweredambientbackscattercommunicationsinIoT
networks[J].IEEEInternetofThingsJournal,2019,6(2):
2264-2272.
[21]XiaoS,GuoH,LiangYC.Resourceallocationinfull du
plex enabledcognitivebackscatternetworks[J].IEEE
TransactionsonWirelessCommunications,2019,18(6):
3222-3235.
[22]AuerG,BlumeO,GianniniV,etal.D2.3:Energyeffi ciencyanalysisofthereferencesystems,areasofimprove mentsandtargetbreakdown:INFSO ICT 247733[R].
EARTH(EnergyAwareRadioandNetworkTechnologies),
2010. 
[23]ValluriSR,JeffreyDJ,CorlessRM.SomeapplicationsoftheLambertWfunctiontophysics[J].CanadianJournalofPhysics,2000,78(9):
823-831.
(上接第31页)
[5]MashayekhyL,NejadM.Energy AwareSchedulingofMa pReduceJobsforBigDataApplications[J].IEEETransac tionsonParallelandDistributedSystems,2015,26(10):
1-15. 
[6]AhmedL,GeorgievV.EfficientiterativevirtualscreeningwithApacheSparkandconformalprediction[J].JournalofCheminformatics,2018,10(1):8-16.
[7]TangS,LeeBS.Dynamicjoborderingandslotconfigura tionsforMapReduceworkloads[J].IEEETransactionson
ServicesComputing,2016,9(1):4-17.
[8]SampathAK,GomathiDN.Decisiontreeanddeeplearn ingbasedprobabilisticmodelforcharacterrecognition[J].
JournalofCentralSouthUniversity,2017,24(12):2862-2876.[9]AlghusseinIIM,AlyWM.Anomalydetectionusingha doopandmapreducetechniqueincloudwithsensordata
[J].InternationalJournalofComputerApplications,2015,
125(1):22-26.
[10]LandsetS,KhoshgoftaarTM.AsurveyofopensourcetoolsformachinelearningwithbigdataintheHadoopecosystem
[J].JournalofBigData,2015,2(1):24-60.
[11]MustafaS,ElghandourI.Amachinelearningapproachforpredictingexecutiontimeofsparkjobs[J].AlexandriaEngi neeringJournal,2018,11(57):3767-3778.
[12]SalloumS,DautovR.BigdataanalyticsonApacheSpark[J].InternationalJournalofDataScienceandAnalytics,
2016,1(4):145-164.
[13]吴恩慈.广播机制解决Shuffle过程数据倾斜的方法[J].计算机系统应用,2019,28(6):189-197.
[14]牛志华,屈景怡.基于Spark的分层子空间权重树随机森林算法[J].信号处理,2017,33(10):1301-1307.
[15]周亮,李格非.基于Spark的时态查询扩展与时态索引优化研究[J].计算机工程,2017,43(7):22-28,37.。

相关文档
最新文档