论文部分内容阅读
摘 要:航空制造业的数据发生了很大的变化。从航空制造过程看,产品的设计研发产生的二维文档或三维模型数据,生产制造产生的BOM表、工装数据和日志数据,实验过程中采集的数据,到最后的装配数据,这些数据总量至少是PB级别。从数据结构来看,除了结构化数据,生产制造过程产生的更多是非结构化数据和半结构化数据。然而目前使用的关系型数据库很难胜任海量数据的存储和分析计算,大多数面向航空制造业的优秀产品数据分析处理软件也很难满足海量数据处理的要求。因此,需要寻求一种新的海量数据处理方式来支持航空制造业的海量数据处理。基于此,本文主要对面向航空制造业的海量数据处理进行分析探讨。
关键词:面向航空制造业;海量数据;处理研究
1、Hadoop核心技术和Map-Reduce编程模型
只要是对海量的信息加以利用,不论是数据挖掘也好,知识发现也好,数据仓库也好,都离不开底层对数据的操作。然而对于大多数的数据中心来讲,数据膨胀的压力是巨大的.数据不断膨胀往往给应用系统带来一些难以忍受的后果,Hadoop是一种开源软件平台,能够更加容易地编写可处理海量数据的并行应用程序。它使用了一种分布式文件存储系统HDFS,这种分布式文件系统提供一个分布式集群存储环境,使得海量数据能够遍布存储于该大集群环境上,并且将之前分类好的数据再进行分块序列式存储。HDFS是一个主从体系结构.
HDFS提供了访问海量数据的支持。HDFS分为两种节点:名称节点(Namenode)和数据节点(Datanode)。这两种节点是运行在计算机上的软件。在集群中,只有一台专门计算机负责运行唯一的名称节点,其他机器则分别运行着数据节点。名称节点负责维护文件的命名空间以及文件数据块复制的大小。数据节点将HDFS数据块存储在本地文件系统中。
Map-Reduce是一种可用于处理数据的编程模型。这种模型是采用并行运行的模式,因此可以将海量数据处理任务交给任何一个拥有机器集群的系统,Map-Reduce的优势就在于可以高效处理海量数据。这种编程模型的任务过程拥有两个处理阶段,依次是Map阶段和Reduce阶段。
在Map阶段之前,输入的数据被切分为若干个数据片段,并且数据以(Key-Value)键值对的形式输入,记为(K1,K2)。每个Map函数接收一个数据片段,这些Map函数是分布在若干个计算机节点上执行的,处理的结果是输出(K2,V2),并且作为Reduce阶段的输入数据。Reduce阶段之前,对这些(K2,V2)数据进行分类,得到数据集(K2,list(V2)),然后分布在不同节点上的Reduce函数将对数据集进行处理汇总,得到(K3,V3)并存储在HDFS上。
2、海量数据处理模型的建立
2.1 航空制造业海量数据处理需求
由于航空制造产业链数据量大、种类多等特点,所以对这些数据进行分类、计算分析、搜索等相关处理是个庞大的任务。这就要求:(1)数据处理模型在处理数据时具有很好的实时性,即能够及时处理实时数据,保持数据的及时更新。例如一个零件的数据更改后,后续零件加工和装配的数据需及时更新,确保数据的一致性。(2)要能够从不同应用程序中提取出相关数据并且进行分类汇总,便于数据分析。例如从CAD、CAM、PDM、BOM和其他信息管理系统中挖掘提取出某一产品的设计数据、制造数据、元数据和材料等数据,需对这些数据进行分析汇总,计算出制造这种产品的周期、费用或者报表等。(3)要能够确保数据存储的可扩展性,这是考虑到由于产品的不断更新,历史数据需要保存备份,且不断开发新的产品,数据源源不断产生,因此就要求系统有很好的扩展性,能够很好地存储新的海量数据。
2.2 海量数据的数学问题描述
数据集是从数据源头也就是CAD系统、SAP系统、PDM系统和PLM等系统中获取的信息,并且直接存储在HDFS中。假設每条数据包基本信息(可根据实际扩展字段名)含文件名Name、文件格式Format(doc、dwg、prt、txt、rm等)、创建日期Date、创建者Person、位置Location和版本Version等6类信息,建立数据集A={Xi;Xi∈Y,i=0~5},其中Xi是一条数据的具体信息,Y是Xi集合。求解的目标是从数据集中提取出所需的信息,并且对信息进行检索、排序、加权等分析。对建立的数据格式描述如下:Name表示文件名;Format表示文件的格式;Date表示文件创建的日期;Person表示文件的创建者;Version表示文件的版本;Location表示文件存储的节点位置;ID表示文件的唯一标识。
2.2.1数据挖掘
按照数据在HDFS中存储的结构,对数据进行深度优先挖掘。算法步骤如下:
(1)选择一个未挖掘节点。如果所有的节点已经挖掘完,算法结束。(2)在已经选择的节点中,选择一个尚未挖掘的分片,如果本节点下的所有分片已经完成数据挖掘,返回步骤(1)。(3)在已经选择的分片中,依次对文件元数据字段进行挖掘,直到挖掘完成所有的字段。(4)返回步骤(2),对未挖掘的分片继续挖掘。
2.2.2数据的提取和存储
将挖掘出的数据按照键值对形式存储在分布式文件系统HDFS中,其中默认文件类型(如txt、doc、rmvb等格式)为Key。这些数据将作为MapReduce程序处理的输入源头,如何对其中的有效信息进行提取处理将是很关键的环节。
数据的提取就是从数据挖掘过程中得到的一条条信息里取出我们需要的数据,并且设计一种格式,再次保存在HDFS中,然后再覆盖原文件。根据上文的数学描述,需要从挖掘的信息中抽取出6种字段信息:文件名Name、文件格式Format、创建日期Date、创建者Person、位置Location和版本Version。存储的格式应当适合长期保存并且易于处理,具备简单性、易于存取和易于扩展等优点。出于上述考虑,存储的格式定义为:(1)存储的源文件由若干条元数据构成。(2)元数据记录了若干条信息,并且按照顺序追加方式依次存放每条元数据。(3)元数据的字段之间用换行符'\007'(不可显示的ASCII码)分隔开,元数据之间用'\r\n'(换行符)分隔开,例如Name'\007'Format'\007'Date'\007'Person'\007'Location'\007'Version'\r\n'。采用这种格式保存信息,容错性好,即使是数据被损坏,也是局部性的,不会扩散并导致其他数据无法存取。按照上述格式,将文件存储到HDFS中。
2.2.3基于Map-Reduce进行数据处理
对输入的数据按照上述方法进行分割,预先将其中之一关键字设定为Key值,从海量数据产生的源头开始,建立不同的节点,来读取并存储不同应用软件的数据,这些节点存储着最原始的数据。然后通过HDFS中唯一的Namenode对数据进行分块,建立数据块文件系统并将分块后的数据存储在Datanodes中,使得数据可以进行分布式存储。
3、结束语
随着信息的膨胀,必然会对信息的管理提出更高的要求,将来可能会出现另一种数据库-一对象数据库,而关系型数据库作为一种成熟的数据管理平台,仍然会在整个航空制造业中占有非常重要的作用,并且仍会平稳地发展。随着各主流厂商的关系型数据库逐步转向Internet,数据库还将迎来一个新的发展高峰。
参考文献
[1]怀特.Hadoop权威指南[M].周敏奇,曾大聃,周傲英,译.北京:清华大学出版社,2011:20-40.
[2]何元.基于云计算的海量数据挖掘分类算法研究[D].成都:电子科技大学,2011:75-79.
关键词:面向航空制造业;海量数据;处理研究
1、Hadoop核心技术和Map-Reduce编程模型
只要是对海量的信息加以利用,不论是数据挖掘也好,知识发现也好,数据仓库也好,都离不开底层对数据的操作。然而对于大多数的数据中心来讲,数据膨胀的压力是巨大的.数据不断膨胀往往给应用系统带来一些难以忍受的后果,Hadoop是一种开源软件平台,能够更加容易地编写可处理海量数据的并行应用程序。它使用了一种分布式文件存储系统HDFS,这种分布式文件系统提供一个分布式集群存储环境,使得海量数据能够遍布存储于该大集群环境上,并且将之前分类好的数据再进行分块序列式存储。HDFS是一个主从体系结构.
HDFS提供了访问海量数据的支持。HDFS分为两种节点:名称节点(Namenode)和数据节点(Datanode)。这两种节点是运行在计算机上的软件。在集群中,只有一台专门计算机负责运行唯一的名称节点,其他机器则分别运行着数据节点。名称节点负责维护文件的命名空间以及文件数据块复制的大小。数据节点将HDFS数据块存储在本地文件系统中。
Map-Reduce是一种可用于处理数据的编程模型。这种模型是采用并行运行的模式,因此可以将海量数据处理任务交给任何一个拥有机器集群的系统,Map-Reduce的优势就在于可以高效处理海量数据。这种编程模型的任务过程拥有两个处理阶段,依次是Map阶段和Reduce阶段。
在Map阶段之前,输入的数据被切分为若干个数据片段,并且数据以(Key-Value)键值对的形式输入,记为(K1,K2)。每个Map函数接收一个数据片段,这些Map函数是分布在若干个计算机节点上执行的,处理的结果是输出(K2,V2),并且作为Reduce阶段的输入数据。Reduce阶段之前,对这些(K2,V2)数据进行分类,得到数据集(K2,list(V2)),然后分布在不同节点上的Reduce函数将对数据集进行处理汇总,得到(K3,V3)并存储在HDFS上。
2、海量数据处理模型的建立
2.1 航空制造业海量数据处理需求
由于航空制造产业链数据量大、种类多等特点,所以对这些数据进行分类、计算分析、搜索等相关处理是个庞大的任务。这就要求:(1)数据处理模型在处理数据时具有很好的实时性,即能够及时处理实时数据,保持数据的及时更新。例如一个零件的数据更改后,后续零件加工和装配的数据需及时更新,确保数据的一致性。(2)要能够从不同应用程序中提取出相关数据并且进行分类汇总,便于数据分析。例如从CAD、CAM、PDM、BOM和其他信息管理系统中挖掘提取出某一产品的设计数据、制造数据、元数据和材料等数据,需对这些数据进行分析汇总,计算出制造这种产品的周期、费用或者报表等。(3)要能够确保数据存储的可扩展性,这是考虑到由于产品的不断更新,历史数据需要保存备份,且不断开发新的产品,数据源源不断产生,因此就要求系统有很好的扩展性,能够很好地存储新的海量数据。
2.2 海量数据的数学问题描述
数据集是从数据源头也就是CAD系统、SAP系统、PDM系统和PLM等系统中获取的信息,并且直接存储在HDFS中。假設每条数据包基本信息(可根据实际扩展字段名)含文件名Name、文件格式Format(doc、dwg、prt、txt、rm等)、创建日期Date、创建者Person、位置Location和版本Version等6类信息,建立数据集A={Xi;Xi∈Y,i=0~5},其中Xi是一条数据的具体信息,Y是Xi集合。求解的目标是从数据集中提取出所需的信息,并且对信息进行检索、排序、加权等分析。对建立的数据格式描述如下:Name表示文件名;Format表示文件的格式;Date表示文件创建的日期;Person表示文件的创建者;Version表示文件的版本;Location表示文件存储的节点位置;ID表示文件的唯一标识。
2.2.1数据挖掘
按照数据在HDFS中存储的结构,对数据进行深度优先挖掘。算法步骤如下:
(1)选择一个未挖掘节点。如果所有的节点已经挖掘完,算法结束。(2)在已经选择的节点中,选择一个尚未挖掘的分片,如果本节点下的所有分片已经完成数据挖掘,返回步骤(1)。(3)在已经选择的分片中,依次对文件元数据字段进行挖掘,直到挖掘完成所有的字段。(4)返回步骤(2),对未挖掘的分片继续挖掘。
2.2.2数据的提取和存储
将挖掘出的数据按照键值对形式存储在分布式文件系统HDFS中,其中默认文件类型(如txt、doc、rmvb等格式)为Key。这些数据将作为MapReduce程序处理的输入源头,如何对其中的有效信息进行提取处理将是很关键的环节。
数据的提取就是从数据挖掘过程中得到的一条条信息里取出我们需要的数据,并且设计一种格式,再次保存在HDFS中,然后再覆盖原文件。根据上文的数学描述,需要从挖掘的信息中抽取出6种字段信息:文件名Name、文件格式Format、创建日期Date、创建者Person、位置Location和版本Version。存储的格式应当适合长期保存并且易于处理,具备简单性、易于存取和易于扩展等优点。出于上述考虑,存储的格式定义为:(1)存储的源文件由若干条元数据构成。(2)元数据记录了若干条信息,并且按照顺序追加方式依次存放每条元数据。(3)元数据的字段之间用换行符'\007'(不可显示的ASCII码)分隔开,元数据之间用'\r\n'(换行符)分隔开,例如Name'\007'Format'\007'Date'\007'Person'\007'Location'\007'Version'\r\n'。采用这种格式保存信息,容错性好,即使是数据被损坏,也是局部性的,不会扩散并导致其他数据无法存取。按照上述格式,将文件存储到HDFS中。
2.2.3基于Map-Reduce进行数据处理
对输入的数据按照上述方法进行分割,预先将其中之一关键字设定为Key值,从海量数据产生的源头开始,建立不同的节点,来读取并存储不同应用软件的数据,这些节点存储着最原始的数据。然后通过HDFS中唯一的Namenode对数据进行分块,建立数据块文件系统并将分块后的数据存储在Datanodes中,使得数据可以进行分布式存储。
3、结束语
随着信息的膨胀,必然会对信息的管理提出更高的要求,将来可能会出现另一种数据库-一对象数据库,而关系型数据库作为一种成熟的数据管理平台,仍然会在整个航空制造业中占有非常重要的作用,并且仍会平稳地发展。随着各主流厂商的关系型数据库逐步转向Internet,数据库还将迎来一个新的发展高峰。
参考文献
[1]怀特.Hadoop权威指南[M].周敏奇,曾大聃,周傲英,译.北京:清华大学出版社,2011:20-40.
[2]何元.基于云计算的海量数据挖掘分类算法研究[D].成都:电子科技大学,2011:75-79.