基于Hadoop体系的传感云数据存储系统及其实现方法
【专利摘要】本发明公开了一种基于Hadoop体系的传感云数据存储系统及其实现方法。通过分析Hadoop框架下的Storm框架、HBase分布式数据表、分布式数据仓库Hive的特点和各自应用场景,结合无线传感器网络形成的传感云技术,提出一种基于Hadoop体系的传感云数据存储系统。本发明通过对Hadoop体系下这三种常见应用场景的分析,使用由上位机软件,数据缓冲池MYSQL数据库和任务调度脚本组成的数据云网关作为传感云到存储系统的数据沟通桥梁。调度脚本将当日实时数据通过推送到Storm框架集群实时写入HBase表,负责前端数据发布和响应;历史数据通过ETL数据操作,从缓冲池抽取并加载到Hive的数据仓库。本发明提出的传感云数据存储系统结构清晰,各模块功能分明,具有良好的层次扩展性和负载均衡的稳定性,目前已经稳定运行并实现对其他系统的数据存储支持。
【专利说明】基于Hadoop体系的传感云数据存储系统及其实现方法
[0001]
技术领域
[0002]本发明涉及Hadoop体系的传感云数据存储系统领域,具体是一种基于Hadoop族大规模传感器数据云存储系统及其实现方法。
技术背景
[0003]无线传感器网络近年逐渐成熟和普及,产生了大量的传感器数据。传统的无线传感器网络在发展中逐渐与远程互联网通信技术和Hadoop技术相结合,形成无线传感云系统。Hadoop是一种具有高可靠性和良好扩展性的分布式存储和计算平台,可以在大量廉价的硬件设备基础上组成集群并运行数据文件等存储计算。基于Hadoop理念和技术,已经发展了一系列用于不同场景的Hadoop体系产品。如分布式数据库HBase,分布式数据仓库Hive,类Hadoop的实时计算平台Storm等。
[0004]Hadoop体系已经具备多种适应于不同应用场景的应用,这些应用都具备大规模数据管理和分布式计算的特点,部分应用已经在各行业得到使用。但是,由于无线传感器网络构成的传感云属于新兴数据源,尚未完全普及和产生海量数据,因此该技术与Hadoop体系应用的集成还处于试验阶段。处理传感云为数据源的数据时,多数系统中仍然使用传统的关系型数据库存储这部分数据。
[0005]处理传感云产生的数据,传统方法使用数据网关接收数据,并存储到关系型数据库,短期内能够满足传感云数据存储和系统展示的访问需求。然而,由于传感云数据产生频率高,速度快。传感器数据量的积累速度是惊人的。随着数据量的上升,关系型数据库的存储和访问性能会逐渐降低,系统适应能力变差。另外,传统数据库扩展性差,在系统运行后进行数据库扩展的成本较高。相对地,扩展性和可靠性正是Hadoop的核心理念,将传感云技术与Hadoop体系的应用进行集成能够满足快速数据积累所需的数据存储处理和扩展需求。
【发明内容】
[000?] 本发明的目的是提供一种基于Hadoop体系Hive,HBase,Storm应用的传感云数据存储系统实现方法,从而应对无线传感器网络数据量快速积累产生的数据存储扩展性和稳定性需求。
[0007]1、实现本发明目的的技术解决方案为:一种基于Hadoop体系的传感云数据存储系统,系统以数据云网关为核心,由无线传感器网络构成的传感云、数据云网关、分布式数据库HBase、实时数据计算的Storm框架、Hive数据仓库以及底层Hadoop基础分布式存储计算支持平台6部分构成;
传感云,用于采集环境数据;由无线传感器网络组成,网络中包含获取设备采集点的光照量、空气温湿度和土壤温湿度及二氧化碳含量的传感器族群设备;
数据云网关,由其上运行的上位机软件、数据缓冲池MYSQL数据库以及任务调度脚本构成;其中,上位机软件接收传感云产生的并通过GPRS模块传输到数据云网关的实时数据,进而解析包含传感云环境数据的IP分组,得到传感云中具体节点信息和环境传感器数据存入数据缓冲池MYSQL数据库;
实时数据计算的Storm框架,实现实时数据向分布式数据库HBase的写入操作;
分布式数据库HBase,用于存储实时环境数据,以传感器名称为键,传感器实时数据为值,并以key为标准分区存储键值对到HBase实时数据表中;
数据仓库Hive,实现历史数据的存储;数据云网关中,上位机解析的环境数据暂存在缓冲池中,当数据积累到指定时长,任务调度脚本执行ETL操作,将历史数据存入到数据Hive仓库的对应表中;
Hadoop基础分布式存储计算支持平台提供支持服务。
[0008]本发明与现有技术相比,其显著优点:1、本发明通过无线传感器网络组成传感云,与数据网关建立通信链路,保证了传感云数据从数据源到缓冲池持续稳定地传输;2、本发明以数据云网关为中心,集成基于Hadoop体系的实时计算框架Storm,保证了实时数据的写入和处理操作稳定性和低时延性,提高了对实时数据需求的响应速度;3、本发明通过Hadoop体系下的HBase数据表存储实时数据,支持了Storm的高速写入和读取操作。为传感云数据传输速度提高提供了扩展空间;4、本发明围绕云数据网关的数据缓冲池,采用Hadoop体系下的Hive应用作为数据仓库作为历史数据存储目标。实现了大规模传感云数据的存储能力扩展性,提高了海量传感器数据存储的可靠性。
【附图说明】
[0009 ]图1是本发明基于Hadoop体系的传感云数据存储系统。
[0010]图2是本发明基于Hadoop体系的传感云数据存储系统数据处理流程图。
【具体实施方式】
[00?? ] 通过分析Hadoop框架下的Storm框架、HBase分布式数据表、分布式数据仓库Hive的特点和各自应用场景,结合无线传感器网络形成的传感云技术,本发明提出了一种基于Hadoop体系的传感云数据存储系统。本发明通过对Hadoop体系下这三种常见应用场景的分析,使用由上位机软件,数据缓冲池MYSQL数据库和任务调度脚本组成的数据云网关作为传感云到存储系统的数据沟通桥梁。调度脚本将当日实时数据通过推送到Storm框架集群实时写入HBase表,负责前端数据发布和响应;历史数据通过ETL数据操作,从缓冲池抽取并加载到Hive的数据仓库。
[0012]1、本发明的系统以数据云网关为核心,由无线传感器网络构成的传感云,数据云网关,分布式数据库HBase,实时数据计算的Storm框架,数据仓库Hi ve应用以及底层Hadoop基础分布式存储计算支持平台6部分构成;
2、传感云是本系统的数据生产源。通过普通的无线传感器网络结合GPRS无线传输技术构成。本系统实现时采用SMAC协议实现传感云网络节点间通信。节点边缘部署GPRS模块,将传感器采集的数据以5秒时延向数据云网关发送数据信息的IP分组。
[0013]3、数据云网关由其上面运行的上位机软件,数据缓冲池MYSQL数据库以及任务调度脚本为构成部分。数据云网关是沟通分布式数据存储和处理功能与传感云数据源的桥梁,是本系统从传感云数据源实现数据接收并分别进行历史数据存储和实时数据的核心。其作用是:运行上位机,与GPRS模块通信,接收来自传感云的实时数据并存储数据缓冲池。调度脚本将数据分别进行实时和历史数据的分布式存储与处理。
[0014]3中涉及的上位机实现流程如下:
第一步:运行TCP线程并进行指定通信端口的侦听。
[0015]第二步:与端口上请求连接的传感云GPRS模块建立通信链路,接收来自传感云的传感器数据分组。
[0016]第三步:上位机对接收到的数据分组进行拆包操作。获取各节点及其传感器的详细数据信息,并存入数据缓冲池。缓冲池使用MYSQL小型关系型数据库承担。负责临时存储解析数据分组获得的传感器数据。
[0017]3中涉及的调度脚本实现流程如下:
第一步:按天为单位分别对缓冲池的实时数据进行推送操作,对历史数据进行数据抽取,转换和加载操作。
[0018]对于第一步中的实时数据处理,其步骤如下:
步骤3.1:对于当天解析出的传感器数据,调度脚本以小时为粒度进行推送操作;
步骤3.2:实时数据推入HBase平台进行分布式存储,待Storm框架处理和调用;
步骤3.3: Storm框架从HBase数据库表中读取实时数据,响应Web网站服务器的实时计算请求。如计算当前一小时内的光照量平均数,一天内平均湿度走势等。
[0019]4、实时数据的存储和计算分别采用Hadoop体系下的HBase分布式数据库和Storm分布式实时计算平台实现。HBase是面向列的分布式非关系型数据库,采用〈key,value)键值对基于列存储数据。其良好的实时性支持和列存储方式适应传感云数据模型的传感器并列关系和实时数据存储场景。本系统中调度脚本按小时存储实时传感云数据。以传感器名称为键,传感器实时数据为值,并以key为标准分区存储键值对到HBase表中。
[0020]5、实时数据存储到HBase中通过Storm实现实时写入。Storm在本系统中承担实时数据写入HBase表和读取HBase表数据进行实时计算的功能。Storm是基于Hadoop体系的实时计算框架,不同于Hadoop的批处理功能。该框架在本系统中实现流数据处理,使用于低时延,快速响应的实时处理前端网站请求场景。
[0021]对于5中提到的Storm框架与HBase交互实现流程如下:
第一步:数据云网关的调度脚本提交了 N条记录进行更新操做;
第二步:将N条分成10份,每份N/10条;
第三步:每个Ja va虚拟机JVM实例会构建一个拥有10个线程的线程池,线程池中的每个线程都会通过ThreadLocal维护一个Connect 1n连接;
第四步:线程会对自己的这N/10条数据顺序进行列自增,实现对HBase中HTable表的连接池共享连接的优化。减轻集群管理和负载均衡操作的压力。
[0022]6、历史数据存储使用Hadoop体系下的分布式数据仓库Hive结合ETL数据处理操作实现。Hive具备良好的数据管理层次,分布式扩展性和可靠性。ETL操作依靠脚本实现从数据云网关的MYSQL数据缓冲池抽取前一日的传感云数据,并按照Hi ve数据结构进行转换,进而加载到该数据仓库对应的表中,作为历史数据的存储目标。Hive的元数据存储索引依赖集群部署的Deby数据库,其物理存储依赖Hadoop分布式存储系统HDFS,存储过程依赖Hadoop的分布式计算引擎MapReduce。
[0023]6中的历史数据存储实现流程如下:
第一步:ETL数据操作脚本抽取云网关缓冲池MYSQL中存储的关系型数据表。ETL是数据抽取,转换,加载的整体过程。在本系统中将MYSQL的元数据抽取到Hive中;
第二步:元数据在Hive的内置元数据库Deby中建立元数据视图;
第三步:ETL抽取的数据文件存储到Hadoop平台的分布式文件系统HDFS中;
第四步:启动Hadoop平台的MapReduce计算引擎,在Hi ve中建立对应数据表并加载HDFS中存入的元数据文件,存储过程完成一个map-reduce作业。
[0024]4、5、6中涉及的承担实时数据和历史数据存储处理的应用服务均属于Hadoop体系。Hadoop是由大量计算机构成的分布式系统基础架构,具有较好的可扩展性。本系统主要用到该架构的分布式文件系统HDFS和分布式计算引擎MapReduce两个基本功能模块。随着Hadoop架构的发展,其生态圈不断完善。本系统使用了支持实时流计算的Hadoop体系周边软件Storm框架,支持列值数据存储的HBase数据表和数据仓库Hive应用。
[0025]下面结合附图1对本发明的系统架构做进一步说明。
[0026]传感云(I)是该系统的数据生产源,由无线传感器网络集成GPRS通信模块形成。传感云内部采用SMAC协议互相通信,将各节点(2)采集到的传感器数据通过SMAC协议传输到中继节点(3),进而由GPRS模块将数据封装成IP数据分组,发送到远程的云数据网关(4)。
[0027]数据云网关(4)负责接收来自传感云(I)的数据分组,通过其运行的上位机软件(5 )接收IP分组,解析出传感云中对应的节点信息和传感器数据,将该数据对应存储到网关上的数据库缓冲池(6)中。调度脚本检查到整点非零点时,将实时数据按小时为单位,推送至IjStorm框架的集群(7)中。Storm按照说明书中5涉及的实现流程将数据实时写入HBase数据表(8)。此时实时数据的存储写入完成,存入HBase中的实时数据可以供网站服务器(9)进行前端调用实现可视化监控过程。该部分主要承担实时数据写入HBase表的存储过程。
[0028]数据云网关(4)上运行的调度脚本检查到零点。调用ETL数据操作脚本,开始抽取数据缓冲池(6)中的当天数据,转换数据格式后加载到Hive分布式数据仓库(10)中。Hive数据仓库采用内置Deby存储元数据索引,其物理存储基于Hadoop集群(11)提供的分布式文件系统HDFS模块,从年初过程基于Hadoop集群(11)提供的分布式计算引擎MapReduce作业实现。该部分主要负责历史数据到数据仓库的存储过程。
[0029 ]如图2基于Hadoop体系的传感云数据存储系统数据处理流程。
[0030]传感云生产环境数据,环境数据被封装成IP分组,通过GPRS模块传输到数据云网关。数据云网关接收IP分组,将解析的数据存入运行在数据云网关上的MYSQL数据缓冲池。任务调度脚本判断系统时间到达零点后,启动ETL历史数据抽取脚本,抽取缓冲池的数据到Hive数据仓库中。如果系统时间是非零点的整点时间,将数据推送到Storm集群进行数据清洗,进而存储到实时响应的分布式数据库HBase中。
【主权项】
1.一种基于Hadoop体系的传感云数据存储系统,其特征在于:系统以数据云网关为核心,由无线传感器网络构成的传感云、数据云网关、分布式数据库HBase、实时数据计算的Storm框架、Hive数据仓库以及底层Hadoop基础分布式存储计算支持平台6部分构成; 传感云,用于采集环境数据;由无线传感器网络组成,网络中包含获取设备采集点的光照量、空气温湿度和土壤温湿度及二氧化碳含量的传感器族群设备; 数据云网关,由其上运行的上位机软件、数据缓冲池MYSQL数据库以及任务调度脚本构成;其中,上位机软件接收传感云产生的并通过GPRS模块传输到数据云网关的实时数据,进而解析包含传感云环境数据的IP分组,得到传感云中具体节点信息和环境传感器数据存入数据缓冲池MYSQL数据库; 实时数据计算的Storm框架,实现实时数据向分布式数据库HBase的写入操作; 分布式数据库HBase,用于存储实时环境数据,以传感器名称为键,传感器实时数据为值,并以key为标准分区存储键值对到HBase实时数据表中; 数据仓库Hive,实现历史数据的存储;数据云网关中,上位机解析的环境数据暂存在缓冲池中,当数据积累到指定时长,任务调度脚本执行ETL操作,将历史数据存入到数据Hive仓库的对应表中; Hadoop基础分布式存储计算支持平台提供支持服务。2.根据权利要求1所述的基于Hadoop体系的传感云数据存储系统,其特征在于:所述Storm框架是类Hadoop架构的实时数据计算平台,用于处理实时数据流,将上位机解析IP分组获取的环境数据实时写入到分布式数据库HBase中。3.根据权利要求1所述的基于Hadoop体系的传感云数据存储系统,其特征在于:所述分布式数据库HBase中的实时数据用于提供可视化展示。4.根据权利要求1所述的基于Hadoop体系的传感云数据存储系统,其特征在于:所述Hadoop基础分布式存储计算支持平台的HDFS功能是Hi ve数据仓库和HBase分布式数据库的文件存储基础,其MapReduce功能是Hive和HBase的实际操作引擎。5.一种基于Hadoop体系的传感云数据存储系统的实现方法,其特征在于: (1)由无线传感器网络构成的传感云获取采集设备点的光照量、空气和土壤温湿度环境数据,通过其GPRS模块无线传输到数据云网关; (2)数据云网关由上位机软件、数据缓冲池MYSQL数据库以及任务调度脚本构成;上位机接收来自传感云的IP分组数据,解析后得到传感云中具体节点信息和环境传感器数据并存入MYSQL数据库充当的数据缓冲池; (3)数据云网关的调度脚本整点时进行检测操作;零点时调度ETL数据抽取脚本整理在数据云网关缓冲池中暂存的来自传感云的本时段环境数据到数据仓库Hive,非零点时推送数据到Storm框架,实现实时数据向分布式数据库HBase的写入操作。6.根据权利要求5所述的基于Hadoop体系的传感云数据存储系统的实现方法,其特征在于:步骤(3)中所述使用Storm框架实现实时数据向分布式数据库HBase的写入操作的实现流程如下: 第一步:数据云网关的调度脚本提交了 N条记录进行更新操做; 第二步:将N条分成10份,每份N/10条; 第三步:每个Java虚拟机JVM实例构建一个拥有10个线程的线程池,线程池中的每个线程都通过ThreadLocal维护一个Connect 1n连接; 第四步:线程会对自己的这N/10条数据顺序进行列自增,实现对HBase中HTable表的连接池共享连接的优化。7.根据权利要求5所述的基于Hadoop体系的传感云数据存储系统的实现方法,其特征在于:步骤(3)中所述ETL数据抽取脚本整理在数据云网关缓冲池中暂存的来自传感云的本时段环境数据的实现流程如下: 第一步:按天为单位分别对缓冲池的实时数据进行推送操作; 第二步:对历史数据进行数据抽取,转换和加载操作。8.根据权利要求5或7所述的基于Hadoop体系的传感云数据存储系统的实现方法,其特征在于:步骤(3)中所述第一步和第二步所述实时和历史数据处理的具体步骤为: 步骤I:对于当天解析出的传感器数据,调度脚本以小时为粒度进行推送操作; 步骤2:实时数据插入HBase数据库进行分布式存储,待Storm框架处理和调用; 步骤3: Storm框架从HBase分布式数据库中对应的表读取实时数据,响应Web网站服务器的实时计算请求。
【文档编号】G06F17/30GK105930384SQ201610232078
【公开日】2016年9月7日
【申请日】2016年4月14日
【发明人】李玉波, 唐浩, 杨余旺
【申请人】南京理工大学