本文研究了基于Spark的并行数据挖掘,并将其应用到了流程对象数据分析中。文章通过对串行的流程对象数据挖掘算法流的研究,提出了一种基于Spark并行计算框架的并行化算法流解决方案,并通过编程实现、并行效率测试、算法调优,最终得出一个并行效果良好的并行数据挖掘方案。该并行方案明显提高了计算效率。
分布式控制系统(Distributed Control System, DCS)在流程工业中应用广泛,其依靠分布于各个环节的传感器实时检测得到的数据进行系统控制。一方面,长期的检测过程可以得到大量数据。另一方面,由于计算机技术的空前发展, 尤其是硬件存储技术以及数据库技术的发展, 使得海量数据的存储成为可能。
信息时代数据的爆炸式增长,让人们愈发认识到数据的重要性,产生于上世纪90 年代的数据挖掘(Data Mining, DM)技术受到人们广泛关注。数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。
数据挖掘为企业决策与控制提供了数字化的指导信息,使得决策与控制不再过于盲目。数据挖掘在工业过程控制中的研究也愈发火热。
与数据挖掘一起,受到人们关注的是大数据处理(Big Data Processing)技术。并行计算(Parallel Com-puting)便是大数据处理的首选,并行计算通过多处理机同时处理同一事务进而加速计算过程。现有的并行计算机主要有SIMD 架构和MIMD 架构,在并行计算机上同样存在着多种并行编程模型和架构,常用的主要有MPI、OpenMP、Hadoop、Spark [1]-[3]等, 这些并行编程模型和架构在并行化机理上不尽相同, 有的是基于数据划分机制的并行,有的是基于任务划分机制的并行,因此适用的场景也不尽相同。在这些并行计算框架中, Spark [3] [4]是当前备受人们关注的开源集群计算框架, Spark 基于改进的MapReduce [5],计算效率较Hadoop 有明显提高。
然而,设计并行计算程序比设计串行程序具有更多的挑战性。针对具体的并行计算模型,并不是任何串行算法都可以轻而易举地转换为并行算法。针对不同的问题,往往要经过仔细的考量之后才能得到一个可以实施且效果良好的并行计算方案。
本文在Spark 基础之上设计并实现了并行化的流程对象数据挖掘算法,主要包含了数据预处理、时序调整、环节聚类、关系分析以及状态关联这几个环节,最终实验表明该并行化设计是可行的,并且有了较大的效率提升。
2. 相关理论研究 2.1. 流程对象模型 2.1.1. 流程工业检测过程 在流程工业的分布式控制系统中,生产过程由一个个环节构成,每个环节通常需要加装许多检测装置,通过数据接口,将检测数据传入数据库/数据仓库中存储起来,用于监测过程状态[1]。我们可以将流程工业生产过程数据检测结构描述为图1。