论文部分内容阅读
随着大数据时代的到来,分布式计算平台越来越受到人们的关注。Apache Flink是一个完全支持流处理、基于内存的分布式计算平台。它把批处理作为流处理的一种极限情况,用流处理的概念来解决批处理,为数据分析提供了一个新的思路和方法。传统的关联规则挖掘算法Apriori、FP-Growth、Eclat都有一定的局限性,选择一个合适的关联规则挖掘算法并对其进行改进是本篇论文的研究重点之一。动车组在日常运维中积累了大量的数据,如何从这些数据中获取知识以指导动车组的运维,提高动车组运行的可靠性,成为一个亟待解决的问题。本篇论文在Flink平台下改进Eclat算法并把改进后的算法应用在动车组故障关联关系挖掘中,主要工作包括:(1)提出了一种基于特定元素比较的判定策略,用于快速判断交集操作能否得到频繁项。通过在Eclat算法中添加该判定条件,跳过不能得到频繁项的交集操作,减少迭代次数,提高算法效率。编写改进前后算法程序,在Flink本地执行环境下分别处理公开数据集做对比实验,验证改进方法的有效性。(2)提出了一种数据预处理方法——字段数字化,用于将动车组数据中复杂的文字转换成简单的正整数,并记录这种一对一映射关系。动车组数据经字段数字化以后,不同类型的字段对应不同的整数区间,因此可以通过简单的数值比较来筛选字段类型。数据集的数字化处理不仅减少了计算过程中的内存消耗,也提高了算法的计算效率。(3)提出了一种基于字段数字化和研究目的的筛选策略,用于筛选剔除不包含故障信息的频繁项。该筛选策略通过优化频繁项集,减少了交集操作的迭代基数,提高了算法效率。用预处理后的动车组数据做对比实验,验证改进方法的有效性。(4)部署Flink on YARN模式集群,为算法并行处理大规模动车组数据集提供环境支持。Flink有一个并行度的概念,可以通过设置并行度的值大于1,达到算法并行执行的目的。调整并行度大小,进行重复实验来探讨并行度和平台计算效率之间的关系。编写Map函数和Reduce函数在MapReduce平台下做对比实验,比较相同条件下两个平台的计算效率。