APP下载

工业现场传感器实时数据存储系统设计与实现

2017-10-12刘冠群张汝波

大连民族大学学报 2017年5期
关键词:存储系统集群分布式

刘冠群,马 萍, 张汝波

(大连民族大学 a.机电工程学院;b.智能感知与先进控制国家民委重点实验室,辽宁 大连 116605)

工业现场传感器实时数据存储系统设计与实现

刘冠群a,b,马 萍a, 张汝波a,b

(大连民族大学 a.机电工程学院;b.智能感知与先进控制国家民委重点实验室,辽宁 大连 116605)

针对工业现场中大量的传感器以连续高并发的方式所产生的海量实时数据难以高效可靠存储的问题,设计了基于 Hadoop 与 HBase 的工业现场传感器实时数据存储系统,并利用5台服务器和1个磁盘阵列构建了数据存储系统原型,最后通过仿真程序模拟工业现场传感器实时数据的高并发特性,对所提出的数据存储系统性能进行了验证。实验表明,所提出的工业现场传感器实时数据存储系统数据存储可靠、运行稳定、并发处理能力强。

数据存储;传感器;工业现场;HBase;Hadoop

Abstract:For the problem to store mass real-time data efficiently and reliably which are produced continuously and concurrently by a large number of sensors in the industrial field, a data storage system based on Hadoop and HBase for industrial field sensor real-time data is designed. The data storage system prototype is constructed with 5 servers and 1 disk array. Finally, the performance of the proposed data storage system is verified with the simulation program which simulates the high concurrency of the real-time data of industrial field sensors. The experimental results show that the real-time data storage system of the industrial field sensor in this paper is reliable in data storage, stable in operation and has a high concurrent processing capability.

Keywords:data storage; sensor; industrial field; HBase; Hadoop

随着“中国制造2025”的提出,智慧工厂概念的加强和物联网技术的使用,使得工业现场中传感器的种类和数量日益增多。数据对于智能化生产的作用愈显重要,数量庞大的传感器每时每刻都在产生大量的数据。传统的实时数据库在处理高时效数据方面存在较强的优势,但是随着大数据技术的应用,暴露出实时数据库在处理大规模传感数据方面存在存储量低、不便于扩展的缺点[1],人们开始寻找新的技术途径以解决工业现场传感器实时数据存储所遇到的问题。

HBase在处理海量数据方面具有很多优点,如高读写性能、高扩展性、高可靠性和高存储性等[2], 是架设在分布式文件系统HDFS(Hadoop Distributed File System)之上的开源数据库,而Hadoop具有底层细节透明、易于扩容和硬件要求低等特点,因此得到了广泛的应用[3]。人们在利用HBase处理工业传感器数据方面做了较多的研究。文献[4]为解决大规模无线传感器网络数据的存储问题,使用HBase实现了一个近实时的存储系统。文献[5]针对交通流数据具有多来源、高速率和体量大的特点,设计并实现了一套基于HBase的交通流数据实时存储系统。文献[4-5]表明HBase可对实时数据进行有效存储。文献[1]将实时数据库与HBase相结合,设计并实现了基于融合数据库的海量传感器信息存储框架,实验结果表明HBase具有较高的读写性能以及良好的扩燕尾服性。文献[6]设计了基于Hadoop的海量海洋科学数据存储平台解决方案,并验证了系统的可靠性、易维护性和良好的可扩展性。本文针对具有高并发特性的生产现场传感器数据高效可靠性存储的问题,提出以Hadoop和 HBase为基础搭建分布式实时数据存储系统的方法,其中,利用Hadoop实现文件的分布式存储,利用HBase作为数据库实现对数据的存储以及查询操作。

1 工业现场传感器实时数据存储系统设计

工业现场中各种传感器产生的大量实时数据对企业具有重要的作用:一方面,可利用实时数据处理技术对这些数据进行处理,以实现对生产过程的实时监控和预警等;另一方面,可对历史数据进行分析,为企业决策提供支持。

随着工业现场所使用的传感器种类和数量的增多,可靠存储和有效使用这些数据是智能化生产所关注的一个重要问题。这类数据的主要特点是稀疏的、非结构化的和高并发的,而且随时间的延长,数据量巨大。针对该类数据的可靠、高效存储问题,并兼顾对大规模历史数据分析的支持,本文使用的分布式数据存储系统如图1,用于工业现场各类传感器实时数据的存储。利用HBase与Hadoop来实现大数据的存储具有一个优势,即可直接利用Hadoop的MapReduce计算框架对所搜集的历史数据进行高效地挖掘分析。

图1 分布式存储系统结构图

1.1 支撑层

图1中的支撑层由HDFS和ZooKeeper两部分组成。

Hadoop是现今大数据项目的事实标准,它通过其核心部件HDFS来实现分布式存储任务。HDFS具有高容错性,可以用低价的硬件设备存储海量数量集,并且具有很高的数据读写吞吐率[6]。HDFS的体系结构如图2,采用主/从(Mater/Slave)式体系结构,包括一个NameNode服务器和多个DataNode服务器。

图2 HDFS体系结构

NameNode是主控服务器,管理文件系统元数据,执行文件系统的命名空间操作,决定数据块到DataNode的映射(Block Map)。DataNode负责实际数据的存储,依据NameNode的命令,处理客户端(Client)的读写请求,执行数据块的存储工作。NameNode使用事务日志来记录元数据的变化,使用映像文件存储文件系统的命名空间。但随着时间的推移,事务日志和映象文件变得庞大。为此,Secondary NameNode用来辅助NameNode处理事务日志和映象文件,使得事务日志大小始终保持在限值之下。

但基于下面的原因,使得HDFS不适合直接存储传感器数据:(1)HDFS数据访问延迟较大,难以应对高并发的传感器数据;(2)当存储大量小文件(<64 MB)时,会因为名字节点占用太多内存而影响性能,但直接存储传感器所需的文件数量却是巨大的。利用HBase与传感器数据进行直接交互,并通过HBase 的数据持久化机制将传感器数据保存文件可靠地存储到HDFS,则可弥补HDFS的劣势。

ZooKeeper是HBase关键的协同服务组件,它利用HBase集群中各节点服务器状态信息,对HBase集群的各节点进行管理。当集群中有新的服务器节点出现时,ZooKeeper可以帮助HBase发现新的可用节点。当HBase中某服务器崩溃时,ZooKeeper可帮助系统恢复到服务器崩溃前的状态。

1.2 服务层

对于稀疏的、非结构化数据的存储,关系型数据库受其存储结构的限制,性能受限。而HBase是面向列的非关系型数据库,在存储异构类型数据方面具有较大的优势。HBase作为一款免费开源的分布式数据库,具有很强的一致性和近似最优的读写性能,可以充分利用磁盘空间。HBase与Hadoop进行集成,可实现对传感器数据的可靠高效存储。

HBase也采用主/从式体系结构。HBase集群主要包括一个Master主节点和多个RegionServer工作节点。Master与ZooKeeper的紧密合作,负责协调管理RegionServer工作节点,对其进行区域分配、负载均衡和运行情况监控等。RegionServer通过Master所提供的信息处理用户的读写操作,并向Master反馈自身运行状态等。用户可以利用HBase所提供的API进行数据存储和获取集群状态信息等。

1.3 应用层

应用层是用户根据项目要求,通过调用HDFS以及HBase所提供的API所实现的各类应用程序。HDFS 和HBase提供了多种类型语言接口,其中Java API是最常规高效的方式。

2 工业现场传感器实时数据存储系统实现

本文基于实验室现有设备搭建了一个系统原型验证存储系统的性能。系统原型硬件配置环境见表1,共有 5台服务器(分为1个主节点和4个工作节点)与1个磁盘阵列,根据HDFS与HBase的结构特点对该设备进行了角色分配。将其中具有较大内存的服务器作为主节点,在主节点服务器上部署 HDFS NameNode、HBase Master和ZooKeeper, 主节点完成相当于管理层的工作。4台工作节点服务器配置相同,并行部署HDFS DataNode和HBase RegionServer,完成传感器数据的分布式存储工作。工作节点服务器需要大量的存储空间用于数据存储,为扩展其存储空间,将磁盘阵列的12块磁盘(每块磁盘的容量为2 TB)平均分配给4台工作节点服务器,每个工作节点具有6 TB的存储空间。

表1 硬件配置环境

该系统原型的整体系统架构如图3,图中的设备与表1的设备一致。整个集群处于一个局域网中,设备之间通过以太网线连接通信,磁盘阵列通过iSCSI协议挂载到各工作节点服务器。客户端通过互联网与该集群进行通信。

图3 系统整体框架图

为保障集群中各软件系统之间交互的一致性,本分布式存储系统所用Hadoop组件均为CDH5.7版本。服务器操作系统为CentOS 7。JDK的版本由Hadoop版本决定。本系统所用Hadoop组件版本以及服务器操作系统版本见表2。

表2 系统软件版本列表

3 仿真测试

3.1 实验场景设置

为验证所构建的分布式存储系统在存储可靠性、运行稳定性、存储均衡性和并发处理能力等方面的表现,本文不同实验场景的设定见表3。在每个场景中,令每个传感器节点每秒产生100个数据,以体现传感器所产生数据的高频特性。从场景一到场景三,通过传感器数量的逐步增多来增加数据的并发性,验证存储系统的并发处理能力。每个场景分为三个实验阶段,每个阶段的实验时长不断加长,分别为24 h、48 h和168 h,以验证存储系统长时间运行的稳定性。在每次写入传感器数据后,将写入数据再次从存储系统中取回,以验证存储系统数据存储的可靠性,同时验证系统的并发处理能力。最后通过分析存储系统中每个数据节点的存储量,以验证分布式存储系统在每个数据节点上进行数据存储的均衡性。

表3 实验仿真多场景列表

3.2 仿真测试系统

本文构建的仿真测试系统如图4,仿真测试程序由Java语言编写,主要功能是模拟传感器数据的生成、实现数据库的访问等。仿真测试程序根据实验场景的设定,为每个传感器创建一个Java线程进行模拟。传感器线程被创建后,通过调用HBase相关Java API为该传感器创建一张数据存储表,传感器所产生的数据信息将存储在此表中。每个传感器线程通过设置定时器,每秒产生100个单精度浮点数据,并为每个数据加上产生时间等其他数据描述信息,构成一个数据记录,并调用 HBase API将数据记录写入对应的数据表中,然后再将写入的数据从数据库中取出,以验证写入数据的完整性。仿真程序以一定的概率随机结束某个传感器线程,并重新创建一个传感器线程,以模拟工业现场中传感器数据的突发性和随机性。

图4 仿真测试系统结构图(线程2)

3.3 实验结果分析

经过测试,与每个实验场景中不同实验时长对应的数据节点存活量见表4。在场景一的24h实验设置中,HBase数据节点存活数量为3个,说明有一个数据节点已经掉线,经过查看日志,分析掉线原因为该节点所在服务器的系统时间与整个集群的时间相差较大,导致该节点与集群沟通不顺畅。对该节点所在服务器的时间进行调整后,随后的实验中没有发生类似情况,HBase节点和HDFS节点都完全存活,说明HBase集群对时间一致性问题较为敏感。在大量传感器实时并发产生数据的条件下,存储系统能在较长的实验周期中正常运行,表示分布式集群的稳定性较强。

表4 多场景仿真测试存储数据节点统计

实验中,HDFS的replication因子设置为3,NameNode节点根据相关信息选取数据节点进行数据存储。每个数据节点存储数据量见表5,从表中的数据可知,每个数据节点的数据存储量大致是均衡的。如果数据存储不够均衡,可运行HDFS的balancer程序来进行均衡。

表5 HDFS 工作节点存储量统计 G

实验表明,本文所构建的分布式存储系数能够对工业现场传感器产生的高并发性实时数据进行有效、可靠存储。

4 结 论

生产智能化程度的提高和大数据技术的应用,使得工业现场各种传感器数据对于企业的作用越显重要。本文针对传统工业数据库在大规模传感器数据处理方面具有存储量低、不便于扩展的缺点,研究了工业现场大量传感器所产生的连续并发海量实时数据的高效可靠存储方法,基于Hadoop与HBase构建了传感器实时数据存储系统,并通过仿真实验对所构建的存储系统原型进行了性能验证。实验表明,本文所设计的存储系统数据存储可靠、运行稳定、并行处理能力强、数据存储均衡,对服务器硬件配置要求不高,对于实际生产具有较大的应用价值。

[1] 类兴邦, 房俊. 基于融合数据库的海量传感器信息存储架构[J]. 计算机科学, 2016, 43(6):68-71.

[2] GEORGE L. HBase: The Definitive Guide[M].O’reilly Media, Inc. 2010.

[3] WHITE T. Hadoop: The Definitive Guide[M].O’reilly Media, Inc. 2012.

[4] 陈庆奎, 周利珍. 基于HBase的大规模无线传感器网络数据存储系统[J]. 计算机应用, 2012, 32(7):1920-1923.

[5] 陆婷, 房俊, 乔彦克. 基于HBase的交通流数据实时存储系统[J]. 计算机应用,2015, 35(1) : 103 - 107.

[6] 崔杰,李陶深,兰红星.基于Hadoop的海量数据存储平台设计与开发[J]. 计算机研究与发展, 2012, 49(S1): 12-18.

(责任编辑 赵环宇)

DesignandImplementationoftheDataStorageSystemforIndustrialFieldSensorReal-timeData

LIUGuan-quna,b,MAPinga,ZHANGRu-boa,b

(a. School of Electromechanical Engineering, b. Key Laboratory of Intelligent Perception and Advanced Control of State Ethnic Affairs Commission, Dalian Minzu University, Dalian Liaoning 116605, China)

张汝波 (1963-),男,吉林省吉林人,教授,博士,主要从事传感器与机器人技术研究, Email:zhangrubo@dlnu.edu.cn。

TP274

A

2017-05-15;

2017-06-15

辽宁省教育厅科学研究一般项目 (L2014542);辽宁省博士科研启动基金 (201501164);中央高校基本科研业务费专项资金资助项目 (DC201502010404)。

刘冠群 (1980-),男,湖南衡东人,讲师,博士,主要从事传感器技术、声源定位和机器人技术研究。

2096-1383(2017)05-0456-05

猜你喜欢

存储系统集群分布式
分布式存储系统在企业档案管理中的应用
海上小型无人机集群的反制装备需求与应对之策研究
天河超算存储系统在美创佳绩
一种无人机集群发射回收装置的控制系统设计
分布式光伏热钱汹涌
分布式光伏:爆发还是徘徊
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
基于DDS的分布式三维协同仿真研究
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统