基于MapReduce的故障诊断方法
2016-10-18赵虎
赵虎
【摘要】 基于MapReduce的故障诊断方法将MapReduce运用到故障诊断中,有效解决了故障诊断过程中大数据的处理问题,大大提高了故障诊断的效率。本文对故障诊断技术的发展进行了阐述,针对故障诊断方法的不足阐述了将MapReduce运用其中的优势。将诊断算法分为迭代和非迭代,使用不同的MapReduce模型分别实现。
【关键词】 MapReduce 云计算 故障诊断 诊断算法
引言
随着设备复杂化程度的提高,故障诊断[1]过程中处理的数据规模越来越大,严重制约了故障诊断的效率,如何解决诊断大数据就成了亟待解决的问题。MapReduce计算模型[2]是云计算的关键技术,能组织集群来处理大规模数据集,对于大规模数据的快速处理有着巨大的优势。本文在诊断算法研究基础上,根据算法运算特点,给出了算法MapReduce化实现的方法。
一、故障诊断技术
故障诊断技术是由于建立监控系统的需要而发展起来的[3]。其发展至今经历了3个阶段[4],
第一是依靠专家或维修人员的个人经验及简单仪表进行的故障诊断工作;
第二是以传感器技术动态测试技术为手段,以信号分析和建模处理为基础的现代诊断技术;
近年来,随着计算机技术智能信息处理技术的发展,故障诊断技术进入了新的发展阶段:数据处理优化建模与知识处理相融合的智能诊断技术。
根据故障诊断算法计算过程是否迭代,可将其分为迭代算法和非迭代算法。迭代算法采用迭代式MapReduce框架实现,非迭代算法采用传统MapReduce框架实现。
二、MapReduce模型及算法实现
2.1 传统MapReduce框架
针对非迭代诊断算法,直接将算法代入MapReduce中。Map和Reduce函数根据算法由用户定义,两个阶段具体工作如下。
Map阶段:Map节点读取输入数据,Map函数采用非迭代诊断算法的计算公式,将输入数据用Map函数处理后输出中间键值对
Reduce阶段:Reduce节点收集Map节点的输出
2.2迭代式MapReduce框架
在迭代程序中,每次迭代计算的输出是下次迭代的输入。采用传统MapReduce框架进行计算时,每次迭代对应一个MapReduce计算过程,需要多次对任务进行提交,计算效率低。迭代式MapReduce框架[5]利用通信模块进行迭代结果的数据传输,一次任务提交即可完成整个计算。因此,对于迭代程序的处理,可采用迭代式MapReduce框架来实现。
迭代式MapReduce框架在传统框架上增加了ComMonitor模块和Transmode模块。ComMonitor模块运行在NameNode节点,负责为各个节点提供通信地址、监控节点间的通信,保证每个计算任务获得相应的通信地址。Transmode模块运行在用户指定的DataNode节点,运行前需向ComMonitor模块进行注册。通过心跳来更新通信信息,并负责节点间数据的接收和传送。
迭代诊断算法的MapReduce化实现在非迭代算法实现基础上,利用通信模块将每次迭代计算结果传送至原Map节点,供下一轮job使用。一次任务提交即可完成整个算法实现。
三、结束语
大数据时代的到来,对故障诊断的实时性和准确性提出了巨大的挑战。基于云计算的故障诊断方法就是在这个背景下产生的。
本文对故障诊断技术的发展进行了阐述,重点研究了两种MapReduce模型,以及诊断算法在其中的实现。通过分析将诊断算法分为迭代和非迭代,迭代算法采用迭代式MapReduce框架实现,非迭代算法通过传统MapReduce框架实现。
参 考 文 献
[1]李娟, 周东华, 司小胜, 等. 微小故障诊断方法综述[J]. 控制理论与应用, 2012, 29(12):1517-1529.
[2]DEAN J, GHEMAWAT S. MapReduce: Simplified Data Processing on Large Clusters[J]. Communications of the ACM, 2008, 51(1): 107-113.
[3]周东华, 席裕庚. 故障检测与诊断技术[J]. 控制理论与应用, 1991, 8(1):1-7.
[4]李伟.复杂系统的智能故障诊断技术现状及其发展趋势[J].计算机仿真, 2004, 21(10):4-7.
[5]金伟健, 王春枝. 适于进化算法的迭代式MapReduce框架[J]. 计算机应用, 2013, 33(12):3591-3595.