本发明属于数据处理,具体涉及一种基于分布式计算模型的数据处理方法及设备。
背景技术:
1、随着大数据时代的数据量急剧增长,传统的单机计算模式已无法满足处理需求。因此,基于分布式计算模型的数据处理方法应运而生,特别是在需要对大量数据进行聚类分析等复杂计算时,分布式计算能够有效提升计算效率。
2、然而,基于分布式计算的数据处理方法在实际应用中仍面临一些挑战:在分布式环境下,数据划分不当可能导致某些节点负载过重,影响整体计算效率;在聚类过程中,数据分布的不均衡会导致部分节点处理任务过重;同时噪声点与异常值会对聚类结果造成影响。
技术实现思路
1、为解决现有技术中存在的上述问题,本发明提供了一种基于分布式计算模型的数据处理方法及设备,通过两阶段的划分策略,提高每个reducer处理的数据量均匀度,再通过采用聚类分析的方法,找出当前分布式处理服务器节点最优访问集进行任务分配,从而提高了数据处理效率和资源利用率,最后通过基于密度的聚类算法对噪声点进行去除,提高了聚类结果的精度。
2、本发明的目的可以通过以下技术方案实现:
3、本公开的第一方面提供了一种基于分布式计算模型的数据处理方法,包括以下步骤:
4、s1、数据采集与预处理:收集来自物联网的各种形式的数据,对收集到的数据进行预处理,包括数据清洗与转换、清除噪声数据和降低数据的维数;
5、s2、数据划分与分区:使用哈希算法对数据进行初步分区,计算每个reducer的负载,识别并调整异常分区,通过细粒度划分对异常分区进行细化,动态调整分区策略;
6、s3、动态任务分配:根据服务器节点的时间窗,识别具有相同时间窗的节点并生成访问策略集合,选择最优访问集进行任务分配;
7、s4、map和reduce阶段:选择核心对象,通过基于密度的聚类算法扩展聚类簇,将所有map任务的聚类结果进行合并,使用迭代性噪声点处理策略;
8、s5、聚类结果评估:使用评估指标评估聚类精度,同时分析作业执行时间和负载偏差度,验证分区策略和动态任务分配的有效性;
9、s6、可视化展示:选择合适的可视化工具展示聚类结果,根据聚类结果设计图表类型,通过图形化方式展示聚类结果。
10、进一步地,所述数据采集与预处理,包括以下步骤:
11、s11、数据清洗与转换:识别数据中的缺失值,并通过均值方式填补;识别并删除重复记录,使用统计方法识别并处理异常值,对数值型数据进行标准化,将类别型变量转换为数值型;
12、s12、清除噪声数据:通过交叉验证来选择最佳的k值,对于数据集中的每一个数据点,计算其与其他数据点的距离,对于每个数据点,识别其k个最近邻;
13、检查k个邻居中各个类别标签的分布情况或计算k个邻居的值的平均数,如果某个数据点与其邻居的相似度显著低于大部分数据点,或者该点的类别标签在邻居中出现的频率显著偏低,则该数据点被判定为噪声并进行移除;
14、s13、降低数据的维数:将原始数据集表示为一个矩阵,对数据矩阵进行奇异值分解,根据奇异值的大小,选择前k个主成分,使用选定的前k个主成分重构数据集。
15、进一步地,所述数据划分与分区,包括以下步骤:
16、s21、第一阶段哈希分区:
17、使用传统的哈希算法对输入数据进行处理,将数据根据key值映射到r个分区,每个分区对应一个reducer,数据被分配到不同的分区中;
18、在每个mapper节点上设置数据计数器,跟踪每个分区中的数据大小,计算每个reducer接收的数据负载量 l r:
19、;
20、式中, x ij表示第 i个mapper上第 j个分区是否被拉取, p ij表示该分区的大小; m表示mapper的数量,p表示每个mapper所含分区的种类个数;
21、设定一个阈值,当待分配到第 r个reduce的数据量 lr超过阈值的90%,则认为是异常分区,否则被reducer正常拉取进行计算处理。
22、进一步地,所述数据划分与分区,还包括步骤:
23、s22、第二阶段哈希分区:
24、根据第一阶段识别出的异常分区,将每个异常分区细分为b组;计算每个reducer的当前负载能力,利用贪心算法为每个细分组选择当前负载能力最优的reducer;
25、计算当前最优reducer和该分组原本分区号之间的偏移值,将偏移值发送给partitioner函数,动态修改哈希分区函数,修改后的partioner函数为:
26、;
27、式中,为修改后的partitioner函数,为原始的partitioner函数;
28、s23、合并划分结果:将第一阶段的分区结果与第二阶段的分区结果合并,形成最终的划分文件,划分文件包含每个key值对应的最终分区信息,根据最终的划分文件,将整体数据直接分配给各个reducer进行处理。
29、进一步地,所述动态任务分配,包括以下步骤:
30、建立原始集合:建立一个包含所有分布式处理服务器节点的原始集合;
31、基准节点选择:以集合中的第一个服务器节点作为基准,与其他节点进行比较,选出与基准节点有公共时间窗的所有其他服务器节点,形成一个新的集合;
32、交集计算:在选出的服务器节点中,继续计算时间窗的交集,逐步扩展集合,直到找到所有与基准节点相关的服务器节点;
33、集合更新:在完成对一个基准节点的处理后,从原始集合中去掉该节点,继续选择下一个节点作为新的基准,重复上述过程,直到所有节点都被处理,生成最终的多个访问策略集合。
34、进一步地,所述动态任务分配,还包括步骤:
35、选择访问策略集合:从生成的访问策略集合中,选择经过的服务器节点最多且通信线路最短的访问策略;
36、删除无效策略:从访问策略集中删除包含上一步选择的服务器节点的所有访问策略;
37、检查覆盖情况:检查当前所有访问策略中的服务器节点是否涵盖了全部的服务器节点;如果是,则结束该阶段,并输出结果;如果不是,则重新选择访问策略;
38、迭代选择:重复上述过程,直到所有服务器节点都被访问到为止;
39、输出结果:最终输出所选择的最优访问集,包括访问的服务器节点的顺序信息,以及对应的通信路径和资源消耗情况。
40、进一步地,所述map和reduce阶段,包括以下步骤:
41、核心对象选择:
42、每个map任务从分区中读取数据点,数据点以特征向量的形式存储;利用改进布谷鸟算法对每个数据点进行处理,通过生成随机数探索数据空间并识别每个数据点的巢穴位置;
43、计算每个数据点的目标函数值,该目标函数包括:
44、密度:计算数据点周围的邻域内数据点数量;
45、距离:计算数据点与其他数据点之间的欧氏距离;
46、核心对象的选择标准:根据计算得到的目标函数值,选择具有最高密度或最佳距离特征的数据点作为核心对象,作为扩展聚类簇的基础;
47、聚类簇扩展:
48、对于每个核心对象,使用dbscan算法的密度可达性原则,检查其邻域内的数据点,计算邻域内的数据点数量,使用一个预设的阈值判断;
49、若邻域内的数据点数量超过设定的阈值,则将这些点归入该核心对象所属的聚类簇;对于每个新加入的点,重复邻域检查过程,继续扩展聚类簇,直到没有新的点加入;
50、聚类结果合并:
51、在reduce任务中,收集所有map任务的聚类结果,每个map任务输出自己的聚类簇及其成员数据点;检查来自不同map任务的聚类簇是否有重叠,若有共同数据点,则合并为一个聚类簇;
52、使用距离度量来判断数据点的归属,确保数据点能够正确归入相应的聚类簇,最终生成一个全局聚类结构,该结构包含所有map任务的聚类结果;
53、噪声点处理:
54、在合并后的聚类结果中,识别出噪声点,采用迭代策略对识别出的噪声点进行处理,通过重新评估噪声点的邻域,将其归入其他聚类簇,如果某些噪声点在后续迭代中发现新邻域数据点,则将其重新分类为聚类成员;
55、定期对聚类结果进行噪声点的排查和去除,通过设置阈值和迭代次数,动态调整噪声点的处理策略。
56、进一步地,所述聚类结果评估,包括以下步骤:
57、s51、聚类精度评估:通过计算轮廓系数对聚类结果质量进行评估:
58、对于每个数据点,计算其与同簇内其他点的平均距离 d(),计算该点与最近邻簇内点的平均距离 k(),轮廓系数 s()计算公式为:
59、;
60、s52、执行时间评估:记录map阶段和reduce阶段的开始与结束时间,分别计算每个阶段的执行时间得出最终的执行总时间;
61、s53、负载偏差度分析:计算每个map任务和reduce任务处理的数据量,计算得到任务负载的平均值,从而计算负载偏差度的标准差 ld:
62、;
63、式中, d( h)是第 h个任务的负载量, n是任务总数,是所有任务负载的平均负载量;
64、s54、分区策略和动态任务分配的有效性验证:检查每个map任务读取的数据量以及每个任务的执行时间对数据分区策略的均匀性进行判断;
65、检查任务分配后,通过观察不同任务的执行时间差异判断动态任务分配的有效性。
66、本公开的第二方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:采用如上所述的方法。
67、本公开的第三方面提供了一种计算器设备,其中,包括:处理器以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:如上所述的方法。
68、本发明的有益效果为:
69、本发明首先基于分布式计算模型,支持多种类型的数据处理,将采集的物联网数据进行预处理,使用knn算法清除噪声数据,使用奇异值分解来降低数据的维数,减少了数据处理的执行时间;然后对处理后的数据通过两阶段的划分策略,确保每个reducer处理的数据量尽可能均匀,从而解决负载不均的问题,根据实际的负载能力动态调整分区,优化资源利用率;通过细粒度划分和避免额外的合并操作,减少了因数据不平衡带来的性能损失,提高了整体的处理效率;再通过采用聚类分析的方法,找出当前分布式处理服务器节点有公共时间窗交集的其他服务器节点进行任务分配,从而提高数据处理效率和资源利用率,从数据划分和节点选择两个方面进行优化;最后在map和reduce阶段采用布谷鸟算法,通过衰减发现巢穴概率的权重,随着迭代搜寻次数的增加提升算法收敛速度,解决了聚类结果受制于局部最优的问题,从而提升聚类的准确性和可靠性。