论文部分内容阅读
[摘 要]在传统的信息系统平台架构中Oracle数据库服务器往往存在性能扩容困难、维护成本较高等问题。针对该问题,利用分布式存储和并行计算技术搭建Hadoop分布式集群平台,通过实验证明,Hadoop集群平台能够有效利用的节点服务器资源,分摊压力,提高计算速度。
[关键词]Hadoop;Oracle;免疫规划;并行计算;内存数据表
doi:10.3969/j.issn.1673 - 0194.2015.08.064
[中图分类号]TP315 [文献标识码]A [文章编号]1673-0194(2015)08-0086-02
“浙江省免疫规划管理信息系统”建设于2004年,因平台性能提升速度未能跟上数据增长的速度,导致在系统的运行中暴露出一些问题。本文就浙江省免疫规划管理信息系统结合Hadoop技术,提升查询速度的可行性和进行探讨。
1 实例分析
浙江省免疫规划管理平台采用传统的三层架构。依靠虚拟化技术和负载平衡技术,实现多Web服务器并行,满足接种点客户端软件的大并发接入需求。使用4路X86架构服务器,部署Oracle软件构建数据库服务器。根据浙江省免疫规划业务管理的要求,平台服务器将至少保存0-13岁的儿童免疫接种数据。截至2014年12月,平台共计接入接种点2 047家,集中存放的儿童个案数超过1 500万,保存的儿童接种记录信息超过2.5亿条。2015年起还将增加成人接种、临时/强化接种等数据。
浙江省免疫规划管理平台服务器性能就已经跟不上业务发展的要求,主要表现在两个方面:以上计算压力太大,平台服务器每晚需要以接种点、乡镇、县区、地市、省级为单位分别进行6份报表的计算,整个计算过程需要10小时,一旦碰到强化免疫等特殊阶段,平台服务器就无法完成在次日06:00点之前完成计算;二是动态查询耗时太长,仅在全省范围内对儿童个案进行动态模糊查询就需耗时7~10分钟。
2 Hadoop介绍
Hadoop是Apache软件基金会资助的开源项目,由Doug Cutting带领的团队受到Google Lab开发的Map/Reduce和Google File System(GFS)的启发,开发的一款能够对大数据进行分布式系统基础架构。Hadoop提供了MapReduce并行计算框架,其自动将一个作业需要处理的大数据划分为多个数据块,分发给集群上的节点进行计算。此外,Hadoop还提供了分布式文件系统(HDFS),用以存储所有计算节点的数据。Hadoop让应用程序能够利用上千万的独立计算机性能和处理PB级的数据。
由于MapReduce需要将任务划分成Map和Reduce两个阶段,Map阶段产生的中间结果要写回磁盘,而在这两个阶段之间需要进行Shuffle操作。Shuffle操作需要从集群中的各个节点进行数据拷贝,大量的时间耗费在网络磁盘I/O中。为了改变这个现象,Hadoop 2.0系列增加了对Spark的支持。
Spark是一个开源的通用并行分布式计算框架,由加州大学伯克利分校的AMP实验室开发,支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。Spark内存计算框架适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性。Spark可以看做是Hadoop的补充,可以在Hadoop 的分布式文件系统(HDFS)中并行运行。Spark可以与MapReduce运行于同个集群中,共享存储资源与计算,可用来构建大型的、低延迟的数据分析应用程序。
3 测试硬件环境
服务器硬件配置:本次实验使用了一台2U的4子星服务器,其内含4个单节点,每个单节点配置相同。节点服务器软硬件配置如表1所示。Hadoop集群包括1个NameNode和4个DataNode,各节点配置如表2所示。
4 实验内容及结果分析
在创建好的Hadoop集群服务器上,导入与浙江省免疫规划管理信息系统Oracle数据库中儿童基本信息表相同的表结构和记录数的数据表(247列,12 283 852行)进行实验,通过实验来验证Hadoop的执行效果。
实验一:执行“select count(*)from test_table”SQL语句进行全表扫描统计行数,记录语句执行时间。连续执行5次求出全表扫描统计平均耗时为3.591秒。
实验二:借助dstat监控工具,记录在执行“select count(*)from test_table”SQL语句进行全表扫描统计行数是节点服务器的CPU、内存的利用率的变化。安装命令:yum install dstat。配置监控数据写入文件命令:dstat -tcmn >cpu_mem_net.log。执行全表扫描统计行数命令,得出每台节点服务器在命令执行过程中的CPU、内存使用情况。图1的纵轴为CPU利用率(%USER),横轴为时间轴。图2的纵轴为内存利用(G),横轴为时间轴。
从实验结果来看,基于内存表技术能够有效地缩短数据表的查询统计时间,Hadoop的分布式技术也能够有效地分配和利用各节点服务器的资源。
5 结 语
本文对Hadoop基于内存表技术的并行计算效果进行研究,通过实验验证在传统二维数据表结构场景下Hadoop的并行处理方式具有高效、快速的特点。
主要参考文献
[1]鲍彤,陈维锋.基于Hadoop的分布式集群平台构建方法研究[J].信息通信,2013(8):21-22.
[2]唐世庆,李云龙,田凤明,等.基于Hadoop的云计算与存储平台研究与实现[J].四川兵工学报,2014(8):97-100.
[3]Matei Zaharia.An Architecture for Fast and General Data Processing on Large Clusters[D]. Berkeley,CA:University of California,2014.
[4]林祥辉,张瑾,黄康平,等.一种基于内存的高效在线数据处理服务框架[J].中文信息学报,2014,28(1):80-86.
[关键词]Hadoop;Oracle;免疫规划;并行计算;内存数据表
doi:10.3969/j.issn.1673 - 0194.2015.08.064
[中图分类号]TP315 [文献标识码]A [文章编号]1673-0194(2015)08-0086-02
“浙江省免疫规划管理信息系统”建设于2004年,因平台性能提升速度未能跟上数据增长的速度,导致在系统的运行中暴露出一些问题。本文就浙江省免疫规划管理信息系统结合Hadoop技术,提升查询速度的可行性和进行探讨。
1 实例分析
浙江省免疫规划管理平台采用传统的三层架构。依靠虚拟化技术和负载平衡技术,实现多Web服务器并行,满足接种点客户端软件的大并发接入需求。使用4路X86架构服务器,部署Oracle软件构建数据库服务器。根据浙江省免疫规划业务管理的要求,平台服务器将至少保存0-13岁的儿童免疫接种数据。截至2014年12月,平台共计接入接种点2 047家,集中存放的儿童个案数超过1 500万,保存的儿童接种记录信息超过2.5亿条。2015年起还将增加成人接种、临时/强化接种等数据。
浙江省免疫规划管理平台服务器性能就已经跟不上业务发展的要求,主要表现在两个方面:以上计算压力太大,平台服务器每晚需要以接种点、乡镇、县区、地市、省级为单位分别进行6份报表的计算,整个计算过程需要10小时,一旦碰到强化免疫等特殊阶段,平台服务器就无法完成在次日06:00点之前完成计算;二是动态查询耗时太长,仅在全省范围内对儿童个案进行动态模糊查询就需耗时7~10分钟。
2 Hadoop介绍
Hadoop是Apache软件基金会资助的开源项目,由Doug Cutting带领的团队受到Google Lab开发的Map/Reduce和Google File System(GFS)的启发,开发的一款能够对大数据进行分布式系统基础架构。Hadoop提供了MapReduce并行计算框架,其自动将一个作业需要处理的大数据划分为多个数据块,分发给集群上的节点进行计算。此外,Hadoop还提供了分布式文件系统(HDFS),用以存储所有计算节点的数据。Hadoop让应用程序能够利用上千万的独立计算机性能和处理PB级的数据。
由于MapReduce需要将任务划分成Map和Reduce两个阶段,Map阶段产生的中间结果要写回磁盘,而在这两个阶段之间需要进行Shuffle操作。Shuffle操作需要从集群中的各个节点进行数据拷贝,大量的时间耗费在网络磁盘I/O中。为了改变这个现象,Hadoop 2.0系列增加了对Spark的支持。
Spark是一个开源的通用并行分布式计算框架,由加州大学伯克利分校的AMP实验室开发,支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种范式。Spark内存计算框架适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性。Spark可以看做是Hadoop的补充,可以在Hadoop 的分布式文件系统(HDFS)中并行运行。Spark可以与MapReduce运行于同个集群中,共享存储资源与计算,可用来构建大型的、低延迟的数据分析应用程序。
3 测试硬件环境
服务器硬件配置:本次实验使用了一台2U的4子星服务器,其内含4个单节点,每个单节点配置相同。节点服务器软硬件配置如表1所示。Hadoop集群包括1个NameNode和4个DataNode,各节点配置如表2所示。
4 实验内容及结果分析
在创建好的Hadoop集群服务器上,导入与浙江省免疫规划管理信息系统Oracle数据库中儿童基本信息表相同的表结构和记录数的数据表(247列,12 283 852行)进行实验,通过实验来验证Hadoop的执行效果。
实验一:执行“select count(*)from test_table”SQL语句进行全表扫描统计行数,记录语句执行时间。连续执行5次求出全表扫描统计平均耗时为3.591秒。
实验二:借助dstat监控工具,记录在执行“select count(*)from test_table”SQL语句进行全表扫描统计行数是节点服务器的CPU、内存的利用率的变化。安装命令:yum install dstat。配置监控数据写入文件命令:dstat -tcmn >cpu_mem_net.log。执行全表扫描统计行数命令,得出每台节点服务器在命令执行过程中的CPU、内存使用情况。图1的纵轴为CPU利用率(%USER),横轴为时间轴。图2的纵轴为内存利用(G),横轴为时间轴。
从实验结果来看,基于内存表技术能够有效地缩短数据表的查询统计时间,Hadoop的分布式技术也能够有效地分配和利用各节点服务器的资源。
5 结 语
本文对Hadoop基于内存表技术的并行计算效果进行研究,通过实验验证在传统二维数据表结构场景下Hadoop的并行处理方式具有高效、快速的特点。
主要参考文献
[1]鲍彤,陈维锋.基于Hadoop的分布式集群平台构建方法研究[J].信息通信,2013(8):21-22.
[2]唐世庆,李云龙,田凤明,等.基于Hadoop的云计算与存储平台研究与实现[J].四川兵工学报,2014(8):97-100.
[3]Matei Zaharia.An Architecture for Fast and General Data Processing on Large Clusters[D]. Berkeley,CA:University of California,2014.
[4]林祥辉,张瑾,黄康平,等.一种基于内存的高效在线数据处理服务框架[J].中文信息学报,2014,28(1):80-86.