有效
一种大数据管道中强化学习驱动的智能伸缩与调优方法
郭莹、刘袁和、张秋萍、王春梅、岳龙飞、郑镇坤
齐鲁工业大学(山东省科学院)
摘要
本发明涉及一种大数据管道中强化学习驱动的智能伸缩与调优方法,涉及大数据处理与计算技术领域,包括:(1)数据管道运行与状态监控;(2)资源指标与特征提取;(3)数据预处理与模型初始化;(4)运行基于LinUCB的动态调整算法;(5)周期性重置与快速响应机制;(6)资源配置结果应用与评估;(7)调优结果保存与持续优化;本发明基于上下文老虎机算法的动态调整策略,通过实时采集Apache NiFi数据管道的系统状态特征,结合在线学习机制,逐步优化线程数、内存分配和CPU核心数的配置,并基于此实现数据管道的智能伸缩与调优,以提升吞吐率、资源利用率和负载均衡能力。
1.一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,包括:步骤一:数据管道运行与状态监控;在 Apache NiFi 数据管道中运行数据处理任务,数据处理任务包括:数据的采集、转换和分发;通过处理器执行数据流处理;实时监控系统运行状态;系统是指运行ApacheNiFi和其他构成数据管道的分布式计算环境;采集多维状态特征,包括:处理器忙碌度、输入队列长度、输出队列长度、系统负载、内存使用率和 CPU 使用率;步骤二:资源指标与特征提取;定义资源指标,包括动态资源指标和静态资源指标;基于采集的多维状态特征,提取多维特征向量,包括队列变化率、队列压力、处理器效率及资源交互特征;步骤三:数据预处理与模型初始化;对采集的多维状态特征进行预处理,包括归一化处理,初始化 LinUCB 模型,设定特征维度、探索参数及初始臂集合;步骤四:运行基于 LinUCB 的动态调整算法;步骤五:周期性重置与快速响应机制;周期性对 LinUCB 模型先验参数进行衰减重置,鼓励重新探索潜在最优配置;在极端场景下即队列积压超过阈值或系统负载超过 80%,触发快速响应策略,限制可选臂范围,迅速缓解系统压力;步骤六:资源配置结果应用与评估;将 LinUCB 算法选定的最优配置应用于 Apache NiFi 数据管道,实时调整处理器并行度和节点资源分配;评估调整后的系统性能,包括吞吐率、队列积压情况和资源利用率,以验证优化效果;步骤七:调优结果保存与持续优化;记录每次调整的配置、上下文特征和奖励值,保存 LinUCB 模型状态;通过加载历史模型,支持系统重启后的快速恢复,并持续优化系统伸缩性能。
2.根据权利要求1所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,运行基于 LinUCB 的动态调整算法;包括以下步骤:初始化动作空间:将线程数、内存大小和 CPU 核心数的组合定义为臂,并设定可选范围;臂选择与 UCB 计算:根据当前上下文特征,利用 LinUCB 算法为每个臂计算预期收益和置信上界,选择最优配置;采用分层策略:高层次周期性调整内存和 CPU 核心数,低层次实时调整线程数;设定奖励函数:设计加权奖励函数,综合队列处理效率、处理器效率、系统负载和资源成本;针对不同场景,动态调整权重,并引入切换惩罚以减少频繁调整;模型更新与优化:执行选定的配置,观测系统性能,计算奖励并更新 LinUCB 模型参数,实现在线学习。
3.根据权利要求1所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤二中,资源指标与特征提取;包括:在监控时间段内,通过 Apache NiFi 的内置API周期性收集并解析系统状态指标,获得每个节点的动态资源指标,包括线程数、处理器忙碌度、输入队列长度、输出队列长度、内存使用率和 CPU 使用率,并将动态资源指标实时保存至本地日志文件;通过 Apache NiFi 的内置API获取每个节点的静态资源指标,包括最大线程数、总内存和 CPU 核心数,并将静态资源指标保存至配置文件。
4.根据权利要求1所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤三中,数据预处理与模型初始化;包括:步骤3-1:从监控时间段的本地日志文件和配置文件中提取动态资源指标和静态资源指标,形成特征数据集;步骤3-2:对于每条状态记录即每个节点的动态资源指标和静态资源指标,计算资源利用率;处理器忙碌度 、输入队列积压 、输出队列积压 、系统忙碌度 、线程数归一化 、队列变化率 、队列压力 、处理器效率 ; 为输出队列长度; 为输入队列长度, 为队列容量;步骤3-3:将 CPU 使用率、处理器忙碌度和线程数归一化处理;步骤3-4:计算资源交互特征,包括:处理器忙碌度与队列长度的乘积 ;系统忙碌度和处理器忙碌度的乘积,以及队列压力和线程数比例的乘积;步骤3-5:特征向量包括处理器忙碌度、输入队列长度、输出队列长度、系统负载、内存使用率、CPU 使用率、队列压力、处理器效率及资源交互特征,构成多维上下文输入。
5.根据权利要求2所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤四中,初始化动作空间;包括:在 LinUCB 算法启动时,初始化动作空间,将线程数 、内存大小 和CPU 核心数 的组合定义为臂,范围分别为 、 、 ; 是最大线程数与最小线程数, 是最大内存与最小内存, 是最大cpu核心数与最小cpu核心数;每个臂表示一种资源配置,包括 ,i表示当前臂选择的线程数, 分别表示初始化时臂的线程数、内存大小和 CPU 核心数,并为每个臂分配初始参数,包括协方差矩阵 和偏置向量 。
6.根据权利要求4所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤3-2中,系统忙碌度 : ; ; ;其中, 为CPU忙碌度, 为内存忙碌度, 、 为从系统采集到的cpu值、内存值;队列变化率 : ;内存使用率 和队列压力 分别通过如下公式计算: (1); (2);其中, 为内存使用量, 为总内存, 为输入队列长度, 为队列容量, 是指双曲正切函数。
7.根据权利要求2所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤四中,臂选择与 UCB 计算;包括:根据当前特征向量 ,为每个臂 计算预期收益 和置信上界 ,如公式 (3) 和(4) 所示: (3); (4);其中, 为参数估计, 为探索-利用平衡参数;选择 最大的臂 ,并采用分层调整策略:线程数 每半分钟调整一次,内存大小 和CPU 核心数 每小时调整一次;执行 后,观测系统性能,计算奖励 ,更新 和 , 如公式 (5) 和 (6) 所示: (5); (6);若系统状态稳定即奖励变化小于阈值,则保持当前配置;否则继续迭代选择和更新。
8.根据权利要求2所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤四中,奖励函数 计算;包括:奖励函数 综合队列处理效率 、处理器效率 和系统负载因子 ,如公式 (7) 所示: (7);其中, 为动态权重, 为切换惩罚;队列处理效率 计算如公式(8)所示: (8);其中, 表示上一次输入队列积压量, 表示当前输入队列积压量;处理器效率 计算如公式(9)所示: (9);其中, 是指处理器忙碌度;系统负载因子 计算如公式(10)所示: (10);其中, 为系统负载。
9.根据权利要求1所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤五中,周期性重置与快速响应机制;包括:每隔固定时间,对 LinUCB 模型参数进行衰减重置,如公式 (11) 所示: (11);若队列积压超过阈值且系统负载低于 0.7,则限制臂选择范围至高线程数和高资源配置,高线程数和高资源配置是指:增加内存和 CPU 核心数;若系统负载超过 0.8,则优先选择低线程数配置,低线程数配置是指:减少线程数和内存分配。
10.根据权利要求1-9任一所述的一种大数据管道中强化学习驱动的智能伸缩与调优方法,其特征在于,步骤六中,实时调整处理器并行度和节点资源分配;包括:处理器调整:根据吞吐率、队列积压情况、资源利用率进行计算奖励,根据奖励来调用NIFI的api来调整并行度;资源分配:根据奖励调用k8s的api来调整nifi节点的cpu和内存。



