免疫规划管理系统海量数据多条件查询及大数据量运算优化思路探讨
2017-05-17叶飞单超群孙娟
叶飞+单超群++孙娟
摘要:云计算在搜索引擎、大规模数据计算等方面的能力和价值已逐渐被社会认可。Hadoop技术作为云计算技术的开源实现,对云计算技术的发展起到了十分重要的作用。由于Hadoop的发展时间比较短暂,系统中仍然有很多地方可以去完善和改进,才能更加充分地发挥其系统性能。本文以浙江省免疫规划平台两个具体业务功能为例,探讨在Hadoop平台下如何进一步提升海量数据多条件查询及离线统计性能。
关键词:Hadoop;免疫规划;多条件查询;离线统计
中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2017)03-0245-01
1 实例分析
浙江省免疫规划管理系统数据库共有297张数据表,最大的数据表“epi_childinfo”进行全表扫描统计行数。该表共有12383850行,237列,数据容量达到65.5G。集中存放的儿童个案数超过1500万,保存的儿童接种记录信息超过 2.5 亿条。随着成人/临时接种业务的开展,数据量在不断激增。2014年,平台经过改造实现整体从oracle单机运行架构转为Hadoop分布式架构。改造完成后,利用了分布式计算技术在一定程度上缓解了模糊查询和大数据量统计计算的压力,但仍不能达到理想的效果,需要进一步针对业务功能进行优化。
2 硬件环境
本次实验使用了十台2U的X86服務器,组建的Hadoop集群(2个NameNode,8个DataNode),每个单节点配置相同,节点服务器软硬件配置如下:
硬件:CPU:2*Intel Xeon E5-2620v2 2.0GHz;内存:128G;硬盘:2*2T SATA。
软件:操作系统:Centos Linux 6.4;
Hadoop版本:2.5;
Hbase版本:0.98.6;
Elasticsearch版本:1.3.1。
3 海量数据多条件查询
3.1 场景描述
全省范围、全部户籍类型、2008年1月1日~2013年12月31日出生的儿童,查询已经接种“OPV、IPV、五联疫苗”三种疫苗中任意疫苗3个剂次的儿童数量和个案明细。
3.2 优化思路
考虑到hbase本身具有支持高并发毫秒级数据读取的能力,查询的主要瓶颈应该是如何根据多条件组合快速搜索到对应数据的rowkey,因此利用Coprocessor和MR任务方法把hbase的数据和基于Lucene的Elasticsearch的分布式全文索引引擎整合建立索引,实现实时创建索引并进行搜索,有效的保证了海量数据中多条件组合查询的性能。
3.3 优化结果
测试结果: 150并发 无负载;
查询时间: 3.736秒 0.8秒;
点击下一页: 1.8秒 0.8秒;
点击末页: 1.2秒 0.8秒;
CPU最大/最小负载:7.1%/30.9% 无。
4 大数据量离线统计
4.1 场景描述
适龄儿童个案免疫规划疫苗接种率(全程接种率)统计:
全省范围、全部户籍类型、2008年1月1日~2013年12月31日出生的儿童,统计“卡介苗、乙肝1-3、脊灰1-3、百白破1-3、麻类1、乙脑1、A群流脑1-2、甲肝1”单苗/单剂次接种率和全程接种率。
4.2 优化思路
考虑到离线数据的计算量、复杂度以及多表关联的问题,采用专有的高效列式内存存储格式和为内存优化的Spark计算引擎,相比广泛使用的Map/Reduce框架消除了频繁的I/O磁盘访问。此外,Spark引擎还采用了轻量级的调度框架和多线程计算模型,相比Map/Reduce中的进程模型具有极低的调度和启动开销,主要优化如下:
(1)数据结构的优化:利用hbase列式数据库的特性,把儿童个案和接种记录表整合成宽表,减少关联查询,提高查询效率。 (2)利用基于内存计算引擎的Spark,配合Holodesk缓存数据供Spark高速访问,进一步提升Spark的统计交互性能。利用高度优化的高速SQL引擎运行于Spark之上进一步提升和保证海量数据离线统计的性能。
4.3 优化结果
测试结果:150并发 无负载;
查询时间:395秒 375秒。
5 结语
Hadoop技术作为一款能够对大数据进行分布式系统基础架构,具有简单的并行编程模型,庞大的数据存储能力和高效的计算能力为用户提供了良好体验。但是简单利用分布式架构的确能够提升性能,但要发挥分布式架构的真正的性能,仍需要针对具体业务特点进行优化。
参考文献
[1]李聪颖,等.基于Hadoop的交互式大数据分析查询处理方法[J].计算机技术与发展,2016,26(8):134-137.
[2]辛大欣,刘飞.Hadoop集群性能优化技术研究[J].电脑知识与技术,2011,7(22):5484-5486.