一种基于Hadoop的纺织海量生产数据存储设计

2013-09-18 10:30刘文化于伟东
微型电脑应用 2013年6期
关键词:海量分布式纺织

王 军,刘文化,于伟东

0 引言

纺织装备企业重点提升产品的自动化、数字化、网络化和智能化水平[1]。目前随着传统的纺织工艺进行知识融合与知识重用,上百个工艺参数的逐步进行优化[2],生产过程出现了“数据丰富而知识贫乏”的现象逐步获得有效解决,但随之而来的则是企业的集成信息系统尤其是生产制造系统每天获取的数据随着应用精度的提高呈几何级递增,因此在如何分发、存储、管理和共享这些海量数据已成为亟待解决的问题。本文在研究Hadoop框架的基础上,提出一种基于Hadoop 的海量纺织生产数据的存储管理体系。

1 纺织生产现状

纺织品的生产链是从原材料如羊毛、棉花的养殖开始的,一般要经过原料初加工、前纺准备、后纺、织布、染整等几大工序,工艺流程长,各类工艺过程既有纤维材料成形方式的不同,也有为得到不同性能和质量指标的半成品或成品所采用加工方法的差别,这其中包括材料位移过程、流体动力学过程、物质热交换过程、化学反应过程,以及借助于工艺设备顺序或并列完成工艺操作的过程等[3]。纺织品加工过程的数据主要体现在:工艺过程的动态性和数据的多样性。纺织品加工过程中各种质量控制指标处于不断变化的动态过程中,数据类型存在多样性,既有数值型,也有非数值型[5]。同时由于大量数据产生的时间和环节不一致,数据分布比较分散;所以分布式的数据组织管理成为一种必要手段。

目前大多数纺织企业的生产制造层面的制造执行系统(MES)、自动监测和动态精细化管理系统,企业资源计划系统(ERP)等集成应用系统仍然采用传统的分布式数据库架构存储和管理数据,需要耗费昂贵得计算资源,其效率并不高,且系统的存储能力受制于所依赖的数据库管理系统的能力,对于如何把大批量数据分割、计算合理分配都需要冗长的程序执行才能实现。

2 Hadoop简介

2.1 Hadoop介绍

Hadoop是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,构建一个具有高可靠性和良好扩展性的并行分布式系统,Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)、MapReduce编程模型和HBase分布式数据库是其三大核心技术[4]。

2.2 MapReduce

MapReduce是一种线形的可伸缩编程模型,包括Map函数和Reduce函数。这些函数无视数据的大小或者他们正在使用的集群的特性。关系型数据库管理系统往往使用于数据集索引已经被建立的查询和更新。MapReduce适合处理需要分析整个数据集的问题,尤其是自主或及时地分析。而生产过程中的数据往往是随时更新,并且数据量大,需要实时得到处理结果。MapReduce满足了数据被一次写入和多次读取的需求,同时对与半结构化的数据非常有效。关系型数据库则相对更适合持续更新的数据集,即写入的数据不断变化,但输入的数据要符合特定的预定义模式。另外,MapReduce还有支持PB级的数据量、支持数据结构的动态模式、进行高速流读写等优点。

2.3 HDFS

HDF是为流式数据访问模式存储超大文件而设计的文件系统。目前已经有Hadoop集群存储PB级的数据量。HDFS是建立在一次写入,多次读取模式是最高效的思想上[7]。一个数据集由数据源直接生成或者复制获得,而后进行相关的数据分析,所以为分析提供的数据集的读取比第一条记录读取的延迟更重要。因此,HDFS建立了流式数据访问机制。

2.4 HBase

HBase是一种构建在HDFS之上的分布式、面向列的存储系统。适合于需要实时读写、随即访问超大数据集的情况。HBase通过线形方式从下到上增加节点来进行扩展。HBase自动把表横向切分为不同区域,每个区域包含表所有行的一个子集。初始表只包含单个区域,但随着区域扩大到超过设置的阀值,便以行为分界线,划分成大小差不多的两个新区域。因此对于任何一个服务器,再大的表都可以由服务器集群来处理。

3 海量纺织生产数据存储架构实现

3.1 纺织海量生产数据的存储整体架构

根据纺织生产过程产生的数据及数据的使用需求[6],源数据层主要功能是数据的获取存储,数据处理层主要实现数据的并行加载存储,数据存储层主要实现为数据应用展现所需数据的存储。在该架构中通过使用HDFS存储海量源数据,通过MapReduce处理这些海量源数据,用HBase分布式数据库存储处理后生产数据。通过三个层面的数据流转从而设计实现纺织海量生产数据的存储系统.具体实现结构如图1。

3.2 HDFS读写数据体系

在从生产过程中采集数据后如图2为Client对HDFS读写数据体系。

图2 Client对HDFS读写数据体系

HDFS Client通过调用FileSystem对象的open()来读取文件[4]。Distributed Filesystem通过使用RPC来调用Name Node,以确定文件开头部分的块位置。对于每一个块,Name Node返回具有该块副本的数据节点。Distributed Filesystem返回一个FSData InputStream对象给Client读取数据。FSdata Input-Stream转而包装一个DFSInputStream对象。Client对这个输入流调用read()。存储着文件开头部分的块的数据节点地址的DFSInputStream随即与这些块最近的数据节点相连接。通过在数据流中反复调用read(),数据会从不同的数据节点(如图中的四个数据节点)返回客户端。到达块的末端时,DFSInputStream会close()与数据节点间的联系,然后为下一个块找到最佳的数据节点。Client从流中读取data block是按照DFSInputStream与不同的数据节点的新连接顺序读取的,一旦Client读取完成,就对File System输入流调用close()。在整个过程中,Client只需要读取一个连续的流即可获得整体的需要分析的数据集。依次过程,Client对HDFS写入数据到各个Data Node。

3.3 MapReduce模型

MapReduce的工作分为两个阶段:map阶段和reduce阶段。每个阶段都有键/值对作为输入和输出,其类型可以支持自定义。在此阶段定义了两个函数:map函数和reduce函数。map函数负责把单任务分解为多任务,reduce函数负责把分解后多任务的处理结果汇总起来,根据需求得到需要的结果。将HDFS中的数据根据处理能力分解成小数据集,然后进行map并行操作,map函数输入的是前一阶段Client写入到HDFS 各个Data Node中的数据。map函数的处理的输出结果先由MapReduce框架处理,经过combine后发送给reduce函数。reduce函数根据需求如根据键来对进行排序,然后输出到HBase分布式数据库中存储。如图3为MapReduce的数据流模型。

图3 MapReduce数据流模型

由于纺织生产过程中产生的数据由结构化的数据、半结构画化、非结构化的数据,并且多数为半结构化的数据。所以在此阶段用MapReduce输入的键和值并不是数据固有属性的特点,根据分析来选择其键值在处理时间内解释数据非常有效。同时,MapReduce通过一个JobTracker的调度和管理及监控任务的运行,通过多个TaskTracker来执行任务,有效提高系统执行能力。

3.4 HBase分布式存储机制

通过MapReduce模型输出的数据被存储在HBase分布式存储系统中。HBase由一个主节点和多个服务器从节点组成。主节点负责分配区域给已经注册的服务器从节点,从节点故障处理;从节点负责响应Client的读写请求,同时也负责通知主节点从节点的分裂、衍生信息。HBase通过HDFS的API进行数据维护。在纺织海量生产数据的HBase的表中,行是经过排序的,并且列可以被客户端随时增加的。该系统可以容纳宽的、稀疏的表而不增加开销。纺织海量生产数据存储系统中将行输入数据write()或copy()到HDFS上,同时运行MapReduce读取输入数据并写到Hbase,所有需要的数据全部读入后再写入所有节点上。随着写入数据的增加和表的划分,数据将被分布的不同的从节点上。

4 总结

该系统根据纺织生产过程的不同特点通过Hadoop实现了纺织海量生产数据的存储。通过HDFS实现了数据的一次写入,多次读取;通过MapReduce实现了充分的并行性,将作业有效分布到数据上;通过HBase实现了随着表空间增长的自动分区、区域自动平衡、访问数据在毫秒范围内的应用。运行表明,系统安全可靠、易维护、具有良好的可扩展性。但该系统中也存在不足及待完善的地方:Name Node的扩展性问题,MapReduce数据流中I/O性能优化问题,MapReduce执行、调度有待进一步提高,这一系列问题未进一步的研究提供指引。

[1]纺织工业“十二五”发展规划 2012年1月

[2]于伟东,杨建国.纺织工业中的虚拟加工技术与模式.纺织导报,7,10-16,22(2005)

[3]刘贵.精毛纺织品虚拟加工中的预报与反演模型研究[博士论文].上海:东华大学,2010

[4]曾大聃,周傲英译.Hadoop权威指南(中文版).清华大学出版社,2010.5

[5]殷祥刚,项前、吕志军,于伟东.基于智能技术的精毛纺织品全程虚拟加工系统.西安工程大学学报,22(4),407-411(2008)Hadoop.http://hadoop.apache.org/

猜你喜欢
海量分布式纺织
一种傅里叶域海量数据高速谱聚类方法
澳洋纺织
纺织届的“两优一先”
海量快递垃圾正在“围城”——“绿色快递”势在必行
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
一个图形所蕴含的“海量”巧题
基于DDS的分布式三维协同仿真研究
一种海量卫星导航轨迹点地图匹配方法
西门子 分布式I/O Simatic ET 200AL