基于HDFS的分布式区域电子病历存储策略
2015-06-24伍贵富何葵王益新
伍贵富 何葵 王益新
摘要:区域医疗信息化平台的建设和推广是目前医疗信息化发展的一个重要方向和研究热点。在平台建设过程中,首先面临的问题是解决如何在基于Hadoop的云计算环境中,高效地操作和存储电子病历等小文件。针对这一问题,提出一种基于AHP方法的存储策略,利用Hadoop系统自身的Sequence File技术将小文件以队列的形式合并为大文件,从而节省了Master Node用户文件管理所占的内存空间,同时通过OQ队列保证了系统在合并文件之后对小文件操作的透明性。仿真实验表明该策略在不影响云计算系统运行状况的基础上,可提高小文件的存储效率。
关键词:HDFS;云计算;电子病历;层次分析法;文件合并
DOIDOI:10.11907/rjdk.151191
中图分类号:TP301
文献标识码:A 文章编号:16727800(2015)006003003
基金项目基金项目:深圳市科技创新委员会项目(20120618102906924)
作者简介作者简介:伍贵富(1963-),男,四川资阳人,博士,深圳市福田区人民医院教授,研究方向为医疗信息化。
0 引言
随着计算机网络与信息技术的快速发展,以及国际医学信息标准化、电子化进程的推进,使区域医疗信息化平台的建设和推广成为可能。电子病历系统(EHRS)[1]作为医疗信息化平台的重要组成部分,受到越来越多人们的关注。
在众多云存储的研究中,Hadoop项目的分布式文件系统HDFS作为Google File System 的开源实现已成为业界研究云计算、实现云服务的参考模型。因此,本文也将Hadoop系统作为云服务的基础架构,研究如何将云服务的优势与区域医疗信息化平台相结合,利用云平台的计算能力和存储能力为电子病历、区域PACS等系统提供相关服务。
由于HDFS文件系统中的每个目录和文件的相关数据信息都存放在各云服务节点的内存中,当系统中存在大量的小文件(通常指那些远小于HDFS默认数据块大小的文件)时,则会降低整个存储系统的存储效率和存储能力。为了解决HDFS文件系统中小文件的存储效率问题,目前的主流方案是将小文件合并或组合为大文件,采用的方法大致可分为2类[2],一类是基于Hadoop archive技术实现小文件合并的方法,另一类则是针对具体的应用而提出的文件组合方法。例如文献[3]结合WebGIS访问模式的特点,将系统中的小文件组合为大文件并为其建立全局索引,以提高小文件的存储效率;而文献[4]中假设每个HDFS系统用户被分配了固定存储空间和文件数目,并利用Hadoop提供的harballing技术对文件进行合并,以提高了系统中元数据的存储效率。
这些研究工作取得了一定成绩,但是没有从系统角度考虑在提高小文件存储效率的同时,如何优化云计算系统的负载状况。因此,本文主要研究了在基于Hadoop的架构中,如何将电子病历等小文件进行存储优化的同时,保证云平台整体负载均衡的问题。并提出了一种基于层次分析法(AHP)的文件存储策略, 通过引入与系统状态关联的特征值判断规则,来优化系统对小文件进行合并执行的时间,防止系统负载过高,以保证在运行小文件较多的情况下,云服务平台的整体性能不会受到太大影响。仿真实验表明了该方法具有较好的性能。
1 基于HDFS的区域电子病历存储策略设计
1.1 HDFS 文件系统
作为Hadoop 系统中的一个核心组件,HDFS系统通常由一个Name Node节点和一定数目的 Data Node节点组成。Name Node是HDFS文件系统的中心服务器,在Hadoop架构中通常由Master Node担任,主要工作是负责管理文件系统的名称空间。而数据节点都是由单台计算机负责,每个节点负责管理自身的数据存储服务。
在实际应用中,发现综合性医院的电子病历的相关数据具有高吞吐量的特点,因此本文设计电子病历在云平台中创建之后,并不立即保存到HDFS文件系统中,而是经过一定周期之后,由系统自动提交保存病历数据的请求。由于采用XML格式的电子病历数据量相对较小,因此本文借鉴了文献[4]、[5]的思想,对电子病历等小文件的存储策略进行优化,以提高对数据的处理效率。本策略为每个用户文件建立了2种队列:第1种为序列文件队列(Sequence File queue,SFQ),第2种为序列文件操作队列(Operation queue,OQ)。其中,SFQ用于小文件的合并,OQ用于对合并后小文件的操作。通过实验设定每种队列的动态合并阈值,当系统中所存的文件数量超过设定的合并阈值后,Name Node将按层次分析法(AHP)判断是否进行文件合并,并在系统负载允许的情况下对电子病历的相关数据进行压缩,否则到SFQ队列耗尽时再对文件进行合并。
在本策略运行过程中,Name Node将对各节点的CPU利用率、内存利用率、带宽利用率和系统平均吞吐量等属性进行检测,并对系统运行状态进行多属性决策。负载计算得到一个即时值,对小文件的操作是在系统负载计算之后,因此在SFQ队列超过合并阈值之后,系统将采用AHP算法不断检测负载状态,如果满足执行合并的条件,或者SFQ队列耗尽后,将执行文件合并。
1.2 基于AHP的系统负载算法
名称节点在管理系统负载值时,根据设定的系统属性的重要性构造比较矩阵C,并由步骤1-4计算各时刻的决策属性值d1,d2,…dn的权重wi。通过该策略,云平台可以实现对各节点系统负载的监测,将合并电子病历等小文件的操作控制在能够均衡系统负载时进行。
2 性能评估
为了测试改进后的HDFS系统对电子病历等小文件的处理能力,搭建了两组对比测试环境,一个是未经修改的HDFS架构,另一个是经过AHP存储策略优化后的架构,用以检测系统的读取文件时间与合并文件时间。
测试将首先生成需要的电子病历文件,分别生成50、100、500、1 000份个人电子病历文件,而这些文件的大小都小于64MB,平均大小约为100KB;其次分别在两种架构上读写这几组文件并记录下读取和合并的时间进行比对;最后都重复进行10次独立实验,并以平均值作为结果得出结论。
从表1中,不难发现经过存储策略优化后的HDFS 架构读取小文件的平均时间随着文件的增多,效率要高于原有的HDFS 架构。但是由于文件的增多,Name Node对各数据节点执行合并时间的计算也增多,使系统的整体执行时间有所增加。
图1描述了在不同电子病历数量的情况下,系统合并文件执行的平均时间。从实验结果中不难发现,电子病历合并的规模越大,Name Node消耗的管理时间将越多,与此同时,对小文件的读写操作以及合并文件所花费的时间代价也将越大。在基于HDFS的存储系统中采用本文的存储策略进行分析和部署,可在时间消耗和系统利用率之间实现一种最优平衡,既可以提高电子病历等小文件的存储效率,同时也不太影响系统性能。
3 结语
本文针对医疗信息化过程中,在基于HDFS的云存储系统中电子病历等小文件存储效率不高的问题,提出一套优化策略。在该策略中,利用Hadoop系统自身的Sequence File技术,将小文件以队列的形式合并为大文件,从而节省了Name Node用户文件管理所占的内存空间。同时通过OQ队列保证了系统在合并文件之后,对小文件操作的透明性。在判断系统何时执行合并操作时,采用数据标准化方法和层次分析法确定系统的负载性能,使小文件的合并能在合并时间、文件操作时间和节省内存空间之间达到一种平衡。实验表明本文设计的策略具有较好性能。
参考文献:
[1] LEHMANN HP ABBOTT PA. Aspects of electronic health record systems[M].USA: Springer, 2006.
[2] 余思,桂小林,黄汝维,等.一种提高云存储中小文件存储效率的方案[J].西安交通大学学报,2011(6):5963.
[3] LIU XUHUI,HAN JIZHONG,ZHONG YUNQIN,et al. Implementing webGIS on hadoop: a case study of improving small file I/O performance on HDFS[Z].200918.
[4] MACKEY GRANT,SEHRISH SABA,WANG JUN. Improving metadata management for small files in HDFS[Z].200914.
[5] SAATY THOMAS L.Axiomatic foundation of the analytic hierarchy process[M].1986.
责任编辑(责任编辑:黄 健)
英文摘要Abstract:One of the key technologies of construction the regional medical information system is efficient operations and storing small files such as electronic health records(EHR)in a Hadoopbased cloud computing environments. To solve this problem, this paper proposed a storage strategy based on AHP(Analytic Hierarchy Process)method. By employed Hadoop Sequence File technology, small files will be combined to make a large file. This method will save the occupation of the memory space in Master Node, and using operation queue to ensure that the operation of those combined small file is correct. Simulation experiments show that this policy will improve small files storage efficiency, and without affect the State of cloud computing systems.
英文关键词Key Words: HDFS; Cloud Computing; EHR;AHP; Combined Files