基于Hadoop的存储平台 解海洋数据孤岛之困
本文提出了一种基于云计算技术进行管理和存储海量海洋科学数据方法,构建了海量海洋科学数据存储云计算平台解决方案,采用Linux集群技术,设计开发一个基于Hadoop的海量数据存储平台。
随着《北部湾经济区发展规划》颁布实施,以北部湾经济区海洋为研究样本的系列重大基础研究专项和重大科学研究项目正在逐一展开,届时将产生海量的海洋科学数据,这些数据具有海量、复杂、多样、异构、动态变化等特性。而且目前各项目的海洋科学数据均缺乏统一的采集和存储的标准和规范,形成“数据孤岛”。如何存储和管理海量的海洋科学数据,使这些这些数据得到高效的利用,成为进行海洋科学研究项目的关键之一。因此构建一个北部湾海洋科学数据存储平台是目前充分发挥各重大基础科学研究项目研究效益的现实途径,也是北部湾经济区可持续发展的必然要求。
1平台总体设计
1.1平台总体框架结构
(1)结合海量数据异构性、分布性、多样性等特点,从系统编程实现角度考虑,本系统采用MVC三层架构设计,使结构更加清晰,系统易于扩展。
显示层:为用户提供方便、易用和友好界面,普通用户可以通过页面浏览和查询海洋数据,高级用户可以利用系统提供的公共API接口,扩展系统。
业务处理层:并行处理海量海洋科学数据,并对整个平台系统配置管理。
数据资源层:是整个平台的基础,存储和管理海量海洋科从系统功能角度考虑,可以将整个系统分三层:第一层是数据访问层。对于海量数据存储,在存取数据时不会只局限对一种数据库的操作,本层需要对各种数据库提供的不同数据源进行屏蔽,提供数据库访问服务,这样系统才能够适应处理存储海量数据的要求,具有较好的可扩展性和完备性,方便管理和部署。
第二层是数据处理层。数据处理层作为整个系统的核心,同时也是本系统设计开发的重点内容。它采用分布式数据库技术、Linux集群技术等,提供了对海量数据的并行加载存储等主要功能。只有通过这一层对海量数据并行处理,才能把处理后的数据存储到本系统的分布式数据库中。同时提供了保证系统能够正常运行的管理支撑服务。
1平台总体设计
1.1平台总体框架结构
(1)结合海量数据异构性、分布性、多样性等特点,从系统编程实现角度考虑,本系统采用MVC三层架构设计,使结构更加清晰,系统易于扩展。
显示层:为用户提供方便、易用和友好界面,普通用户可以通过页面浏览和查询海洋数据,高级用户可以利用系统提供的公共API接口,扩展系统。
业务处理层:并行处理海量海洋科学数据,并对整个平台系统配置管理。
数据资源层:是整个平台的基础,存储和管理海量海洋科从系统功能角度考虑,可以将整个系统分三层:第一层是数据访问层。对于海量数据存储,在存取数据时不会只局限对一种数据库的操作,本层需要对各种数据库提供的不同数据源进行屏蔽,提供数据库访问服务,这样系统才能够适应处理存储海量数据的要求,具有较好的可扩展性和完备性,方便管理和部署。
第二层是数据处理层。数据处理层作为整个系统的核心,同时也是本系统设计开发的重点内容。它采用分布式数据库技术、Linux集群技术等,提供了对海量数据的并行加载存储等主要功能。只有通过这一层对海量数据并行处理,才能把处理后的数据存储到本系统的分布式数据库中。同时提供了保证系统能够正常运行的管理支撑服务。
图1 平台整体框架结构
2云计算海量数据存储平台开发
根据本平台功能设计,存储平台最主要的部分是数据处理层,而在实现数据处理层时,数据的并行加载存储模块成为了整个平台实现的核心,Hadoop分布式技术为该平台提供了数据存储和数据处理的模型及方法。使用Hadoop分布式文件系统存储海量源数据,通过MapReduce3rav~/式计算模型来处理这些海量源数据,然后采用Hbase分布式数据库存储处理后的海量数据,以此来实现对海量海洋科学数据的存储管理。
2.1 Hadoop分布式文件系统
HDFS是分布式计算的存储基础,它具有高容错性,可以部署在廉价的硬件设备上,用来存储海量数据集,并且提供了对数据读写的高吞吐率。HDFS为北部湾海洋科学数据提供了海量存储的基础,作为未处理的源数据集保存在Hadoop39V~/式文件系统中。
HDFs采用iaSter/Slave的体系结构,集群中有一个NameNode和很多个DataNode组成。NameNode是主控服务器,管理文件系统元数据。它执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录,还决定数据块~UDataNode的映射。DataNode存储实际的数据,负责处理客户的读写请求,依照NameNode的命令,执行数据块的创建、复制、删除等工作。一个集群只有一个NameNode的设计大大简化了系统架构。
HDFS还设计有特殊的Secondary NameNode节点,辅助NameNode处理映像文件和事务日志。它会定期从NameNode上复制映像文件和事务日志到临时目录,合并生成新的映像文件后再重新上传到UNameNode,NameNode更新映像文件并清理事务日志,使得事务日志的大小始终控制在某个特定的限度下。
2.2 MapReduce编程
MapReduce就是“任务的分解与结果的汇总”。Map把任务分解成为多个任务,Reduce把分解后多任务处理的结果汇总起来,得到最终结果。把从HDFS中读取的待处理的海量海洋科学数据分解成许多小数据集,每一个小数据集都并行处理,处理后存储到分布式数据库。归纳纳如下:数据集分割mapcombinereduce结果输出。
将海量海洋科学数据分割M个片段进行并行Map操作,然后形成中间态键值对,接着以K值进行Group操作,形成新的元组,对这些元组分割成R个片段进行并行的Reduc操作,最后输出到分布式数据库中保存起来。MapReduce计算模型的实现是由JobTracker和TaskTracker这两类服务调度的。JobTracker是主控服务器,只有一个,负责调度和管理TaskTracker,把Map任~$HReduce任务分配给空闲的TaskTracker,并负责监控任务的运行情况;TaskTracker是从服务,可以有多个,负责执行任务。通常MapReduce和HDFS是运行在一组相同的节点上的,即计算机点和存储节点通常在一起,方便高效的调度任务。
3海量存储平台特性
本平台基于Hadoop分布式技术,使编程和实现起来都比较容易,能够高效的存储管理海量数据,具体来说有以下特性:
(1)可扩展性。具有存储可扩展和计算可扩展性。
(2)经济性。基于Hadoop的海量存储平台可以运行在廉价的Pc上,无需昂贵的大型机。
(3)安全可靠性。HDFS的备份恢复机制以及MapReduce的任务监控机制保证了分布式处理的可靠性。
(4)高效性。分布式文件系统的高效数据交互以及本地存储本地计算的处理模式,为高效的处理海量海洋数据做了基础准备。
4结束语
本文设计并开发了基于Hadoop的海量海洋科学数据云计算存储平台。采用Linux集群技术、并行分布式数据库技术、以Hadoop分布式平台作为基础,主要以HDFS分布式文件系统、Map/Reduce并行计算模型作为处理海量数据方法,在大量的廉价普通计算机上搭建该平台,达到了高效存储和管理北部湾海量海洋科学数据的要求。目前该云计算存储平台还在开发中,平台模块实现的结果表明,系统具有良好扩展性和易维护性,系统采用的技术路线和设计方法是有效和可行的。
根据本平台功能设计,存储平台最主要的部分是数据处理层,而在实现数据处理层时,数据的并行加载存储模块成为了整个平台实现的核心,Hadoop分布式技术为该平台提供了数据存储和数据处理的模型及方法。使用Hadoop分布式文件系统存储海量源数据,通过MapReduce3rav~/式计算模型来处理这些海量源数据,然后采用Hbase分布式数据库存储处理后的海量数据,以此来实现对海量海洋科学数据的存储管理。
2.1 Hadoop分布式文件系统
HDFS是分布式计算的存储基础,它具有高容错性,可以部署在廉价的硬件设备上,用来存储海量数据集,并且提供了对数据读写的高吞吐率。HDFS为北部湾海洋科学数据提供了海量存储的基础,作为未处理的源数据集保存在Hadoop39V~/式文件系统中。
HDFs采用iaSter/Slave的体系结构,集群中有一个NameNode和很多个DataNode组成。NameNode是主控服务器,管理文件系统元数据。它执行文件系统的命名空间操作,比如打开、关闭、重命名文件或目录,还决定数据块~UDataNode的映射。DataNode存储实际的数据,负责处理客户的读写请求,依照NameNode的命令,执行数据块的创建、复制、删除等工作。一个集群只有一个NameNode的设计大大简化了系统架构。
HDFS还设计有特殊的Secondary NameNode节点,辅助NameNode处理映像文件和事务日志。它会定期从NameNode上复制映像文件和事务日志到临时目录,合并生成新的映像文件后再重新上传到UNameNode,NameNode更新映像文件并清理事务日志,使得事务日志的大小始终控制在某个特定的限度下。
2.2 MapReduce编程
MapReduce就是“任务的分解与结果的汇总”。Map把任务分解成为多个任务,Reduce把分解后多任务处理的结果汇总起来,得到最终结果。把从HDFS中读取的待处理的海量海洋科学数据分解成许多小数据集,每一个小数据集都并行处理,处理后存储到分布式数据库。归纳纳如下:数据集分割mapcombinereduce结果输出。
将海量海洋科学数据分割M个片段进行并行Map操作,然后形成中间态键值对,接着以K值进行Group操作,形成新的元组,对这些元组分割成R个片段进行并行的Reduc操作,最后输出到分布式数据库中保存起来。MapReduce计算模型的实现是由JobTracker和TaskTracker这两类服务调度的。JobTracker是主控服务器,只有一个,负责调度和管理TaskTracker,把Map任~$HReduce任务分配给空闲的TaskTracker,并负责监控任务的运行情况;TaskTracker是从服务,可以有多个,负责执行任务。通常MapReduce和HDFS是运行在一组相同的节点上的,即计算机点和存储节点通常在一起,方便高效的调度任务。
3海量存储平台特性
本平台基于Hadoop分布式技术,使编程和实现起来都比较容易,能够高效的存储管理海量数据,具体来说有以下特性:
(1)可扩展性。具有存储可扩展和计算可扩展性。
(2)经济性。基于Hadoop的海量存储平台可以运行在廉价的Pc上,无需昂贵的大型机。
(3)安全可靠性。HDFS的备份恢复机制以及MapReduce的任务监控机制保证了分布式处理的可靠性。
(4)高效性。分布式文件系统的高效数据交互以及本地存储本地计算的处理模式,为高效的处理海量海洋数据做了基础准备。
4结束语
本文设计并开发了基于Hadoop的海量海洋科学数据云计算存储平台。采用Linux集群技术、并行分布式数据库技术、以Hadoop分布式平台作为基础,主要以HDFS分布式文件系统、Map/Reduce并行计算模型作为处理海量数据方法,在大量的廉价普通计算机上搭建该平台,达到了高效存储和管理北部湾海量海洋科学数据的要求。目前该云计算存储平台还在开发中,平台模块实现的结果表明,系统具有良好扩展性和易维护性,系统采用的技术路线和设计方法是有效和可行的。