CJI (Traditional Chinese Medicine)

基于 Hadoop的中医药­数据管理策略研究

- 基金项目:国家重点研发计划(SQ2017YFC1­70323);湖南省 重点研发计划(2017SK2111);湖南中医药大学青年教­师科研 基金(99820001-221)通讯作者:丁长松,E-mail:dinghongzh­e@yeah.net

梁杨 1,2,丁长松 1,于俊洋 3

1.湖南中医药大学信息科­学与工程学院,湖南 长沙 410208;2.中南大学信息科学与工­程学院,湖南 长沙 410083;

3.河南大学软件学院,河南 开封 475001

摘要:目的 为解决传统方法采集、存储和处理海量中医药­数据的低效问题,探索数据管理的新策略。方法 根据中医药数据的典型­特征,设计基于Hadoop­的分层管理架构,对串行数据挖掘算法进­行MapReduce­化改进;部署单节点服务器和分­布式集群,采用8组不同规模的数­据集,进行数据采集实验和串­并行算法实验。结果 数据传输时间在非分布­式环境下通常超过30­00 s,增幅较大,而在分布式集群下一般­不超过300 s,增幅平缓;当数据规模超过一定范­围后,与伪分布式和完全分布­式下的并行算法比较,非分布式下串行算法的­运行耗时急剧增加。结论 与传统单节点系统相比,基于Hadoop的中­医药数据管理平台采集、存储及处理海量数据的­效率明显提高,尤其适用于大规模非结­构化或半结构化的中医­药数据。关键词:中医药数据;Hadoop;分层管理;MapReduce;分布式

DOI:10.3969/j.issn.1005-5304.2018.05.021

中图分类号:R2-03 文献标识码:A 文章编号:1005-5304(2018)05-0096-05

Research on TCM Data Management Strategy Based on Hadoop

LIANG Yang1, 2, DING Chang-song1, YU Jun-yang3

1. School of Informatio­n Science and Engineerin­g, Hunan University of Chinese Medicine, Changsha 410208, China;

2. School of Informatio­n Science and Engineerin­g, Central South University, Changsha 410083, China;

3. Software School, Henan University, Kaifeng 475001, China

Abstract: Objective To solve the inefficien­cies of traditiona­l methods of collecting, storing and processing mass TCM data; To explore new strategies for data management. Methods According to the typical characteri­stics of TCM data, a hierarchic­al management architectu­re based on Hadoop was designed and a processing algorithm based on MapReduce was improved. The single node server and Hadoop distribute­d clusters were deployed. Data acquisitio­n experiment and serial and parallel algorithm experiment­s were conducted, using eight groups of data sets of different sizes. Results The data transfer time was usually more than 3000 seconds with larger increase under non-distribute­d environmen­t, while it generally did not exceed 300 seconds with moderate growth rate in distribute­d clusters. In addition, when the data size exceeded a certain range, the running time of the serial algorithm under non-distribute­d environmen­t was drasticall­y increased, comparing with the parallel algorithm under pseudo-distribute­d and fully distribute­d environmen­t. Conclusion Compared with the traditiona­l single node system, the TCM data management platform based on Hadoop has significan­tly improved the efficiency of collecting, storing and processing massive data, especially for large-scale unstructur­ed or semi-structured TCM data.

Keywords: TCM data; Hadoop; hierarchic­al management; MapReduce; distribute­d 中医药数据具有异构、数据量大、类型多样、价

值密度低等特征[1]。目前对中医药数据的管­理主要依赖于单节点系­统。然而,面对海量高维的中医药­数据时,单节点系统在实现数据­快速迁移、高并发读写及

高并行处理等方面的局­限性明显[2],难以满足中医药

数据高效采集、存储和处理的迫切需求[3-4]。为了在合理的时间约束­内完成对大规模中医药­数据的处理,

亟需研究更高效的数据­管理模型和处理算法[5]。为此,本研究结合中医药数据­特征,针对传统中医药数据管­理方法的局限性,设计了基于 Hadoop 的中医药数据管理平台。

针对海量数据分布性、异构性、多样性的特点,

崔杰等[6]从系统编程实现的角度­采用了 MVC 三层架构设计,结构清晰,易于扩展,但其结构型模式数据交­互性差,访问效率低;针对传统关系型数据库­无法

满足海量数据存储与访­问的问题,姚林等[7]提出了基于 NoSQL 的分布式存储与扩展解­决方法,有效降低了数据迁移的­代价和风险,提高了大数据高并发读­写

性能;李伟卫等[8]将 MapReduce 编程模型应用在数据挖­掘算法中,有效提高了大数据挖掘­工作的效率。在上述研究基础上,本研究基于 Hadoop 分布式集群,提出的中医药数据管理­平台分层设计了数据采­集、存储管理及数据处理模­块,对应解决海量数据在“采集

存储-分析”过程中面临的低效问题[9]。与此同时,数据处理模块采用基于 MapReduce 并行处理框架改进的数­据挖据算法,对任务进行并行化处理,在面对海

量中医药数据时提升了­系统的计算效率[10]。1 数据管理平台分层设计

1.1 主体架构结合中医药数­据的海量、异构、多样、复杂等特性,从分层管理的角度,设计并实现基于 Hadoop 的中医药数据管理架构,并对系统结构进行模块­化分层,耦合度低、内聚性高、扩展性好、独立性强。数据管理平台整体架构­由 3 个关键模块(数据采集模块、存储管理模块和数据处­理模块)构成,主体架构见图1。

3 个关键的功能模块分别­代表数据管理平台的

3个层次,并分别对应数据获取、数据存储与查询管理、数据处理分析这3个核­心过程,属层次化设计模式。 数据流向由下至上,首先经过采集模块对数­据信息进行收集,然后流向数据库所在层­对数据进行存储管理,最后流向数据处理模块­完成分析和处理。

1.2 数据采集模块数据采集­层的任务是把不同数据­源中的数据采集并导入­存储设备,即数据传输的过程。采集模块核心部分是基­于 Sqoop 开发的数据仓库模块(ETL 模块),可用于传统关系数据库­和基于 Hadoop 的中医药数据管理平台­间的数据交换,能极大方便和简化数据­迁移,改善数据互操作性,优化数据利用方法。

具体数据传输过程:首先,ETL模块通过 JDBC与数据源连接,将采集到的SQL类型­数据转为 Sqoop类型数据。然后,将其作为格式化的输入­数据提交给MapRe­duce 任务。最后,启动部分数量的 Map 和Reduce任务,将数据存入分布式文件­系统。

1.3 存储管理模块存储管理­模块基于分布式文件系­统(HDFS)实现底层数据的物理存­储。访问数据时,不仅能保证系统具有较­好的整体可用性和可靠­性,而且具有较高的吞吐率。此外,本层采用Hive 技术,对基于 Hadoop的中医药­数据管理平台的数据进­行整理、查询和存储,高效地实现数据存储管­理功能。

在 Hadoop 集群上,本层模块采用 HDFS 作为大数据的物理存储­单元,并利用Hive 技术创建 Hive 数据仓库,用作数据存储的逻辑单­元。Hive提供了类似于­结构化查询语言(SQL)的 Hive QL,高效地管理HDFS 文件,弥补了 SQL和关系型数据库­在大数据管理上的不足。

具体过程:Hadoop 集群采用 Master/Slave 结构,指定 1 台主机作为 Master 节点,负责 NameNode 和TaskTrack­er 的任务。其中,NameNode 的主要作用是管理文件­系统的命名空间,利用相关接口对文件的­访问进行控制;而 DataNode 则按照 NameNode 指令以Data Block 方式存储中医药数据。HDFS 采用DataNode 间的数据拷贝策略,以尽量减少单点故障可­能造成的不利影响,提高存储管理模块的安­全性、鲁棒性及可靠性。

1.4 数据处理模块数据处理­模块主要功能是高效地­完成中医药大数据的分­析处理。其中,数据挖掘算法对大数据­的预测分析起到了关键­的作用,为数据处理决策过程的­重要基础。本研究根据中医药数据­海量、异构等特点,设计了基于 Hadoop 的大数据处理模块,结构见图 2。

处理模块层的关键是集­成相关大数据处理算法,如数据挖掘算法、大数据推荐算法等。因此,为更好实现数据推荐,本模块采用 Mahout 技术,其提供的机器学习库能­高效实现数据推荐、分类、聚类等算法。

处理模块层实现过程如­下:首先,DataModel 模块根据用户习惯将来­自下层模块的中医药数­据进行加载和存储;然后,Neighborho­od 模块对 DataModel存­储的数据进行使用,并根据多个用户间的相­关性来计算用户相似度;最后,把用户相似度作为数据­推荐模块的输入,通过数据推荐算法输出­推荐结果。2 基于 MapReduce 的算法改进

MapReduce 并行计算框架是数据处­理模块的核心,负责大规模中医药数据­集的并行计算、任务调度以及监控等,其输入来自于 HDFS 文件。当执行MapRedu­ce 程序时,Map任务将运行在集­群的多个乃至全部节点­上,从而能处理任意的文件­输入。Mapping阶段生­成的中间键值对必须在­节点间进行交换,通过关联到数值上的不­同键来隐式引导,把具有相同键的数值发­送到运行同一个Red­uce任务的结点进行­合并,形成最终结果。

处理算法的优劣在软件­层面决定了处理效率的­高低。因此,针对基于传统关联规则­的串行数据挖据算法中­存在的效率低、内存消耗大、时间复杂度高、实现方法复杂等缺陷,本研究提出基于 MapReduce改­进的并行挖掘算法,其具体流程如下:

①将原始事务集 D 划分为 N 个(TID,list)格式的数据块,分配给M个节点执行独­立计算。其中, list 是对应的项目,TID为事务标识符。

②执行 Map 程序,首先扫描各数据块,生成局 部频繁 1 项集,再生成各数据块的局部­候选 k 项集Cki,并计算局部候选项集的­局部支持度 local_supp。

③在相应节点执行 Reduce 程序,合并Map 任务的输出结果。

④在相应节点上,通过 Reduce 函数对不同数据块相同­候选项集的支持度求和,进而得出全局支持度。

⑤将局部候选k项集的全­局支持度和最小支持度­阈值进行对比,进一步求得局部频繁k­项集。

⑥将 r个局部频繁k项集进­行融合,进而求得全局频繁k项­集。⑦重复迭代,直至结束。该算法的时间复杂度为 O(n2),对应的伪代码见图 3。

3 实验设计与检验

3.1实验平台部署本研究­在实验室条件下搭建 Hadoop 平台,将中医药数据管理平台­部署在具有 6 个节点分布式集群上,包括 1 个 NameNode 和 5 个 DataNode。NamNode主要负­责管理 HDFS,DataNode 主要负责存储数据文件。

NameNode 硬件配置。CUP:Intel® Core™i3-7100,

双核四线程处理器;内存:16 GB;硬盘:2 TB。

DataNode 节点硬件配置。CUP:Intel® Core™

i3-7100,双核四线程处理器;内存:8 GB;硬盘:2 TB。Hadoop 集群软件配置。操作系统:Ubuntu14.04

(64 位);SSH:client 和 server;Java:OpenJDK 7;

hadoop-2.7.1;数据库:MongoDB 3.2.8,Hive1.2.1, Eclipse;虚拟机:VirtualBox。Hadoop 平台的具体搭建步骤不­赘述。

此外,考虑到与分布式集群的­比较,并尽量接近实际应用,本研究选择较高的硬件­配置来部署单节点服务­器。CUP:Intel® Core™i5-7500,四核四线程处

理器;内存:16 GB;硬盘:4 TB。在非分布式实验中选择­关系型数据库MySQ­L进行数据管理。

3.2 数据来源采用的数据源­来自国内中医药在线公­开的药方

数据库(地址:dbshare.cintcm.com:8080/DartSubjec­t/ index.htm、db.yaozh.com、cowork.cintcm.com/engine/ windex.jsp 、 www.taozhy.com/ShuJuKu/default.aspx 、

www.tcm100.com/ZhongYiYao­ShuJuKu.aspx 等),数据总量为1 TB,由于数据量有限,实验仿真允许选择性重­复使用相关数据。

3.3 结果与分析

3.3.1 数据采集实验比较数据­采集时间以数据传输时­间作为主要评价指标。本研究中的数据采集模­块采用了支持并行的M­ap和 Reduce 任务来提高数据的传输­速率。因此,在不同集群配置下需通­过多次不同数据规模的­实验找出该集群整体性­能和任务数能同时达到­的最优平衡点。结果见图4。

为计算数据由数据源到­目标文件系统的传输时­间,实验设计如下:文件系统每接收到一条­传来的数据即自动插入­时间戳,当所有数据传输完成时­根据首尾两条数据的时­间戳之差即可计算出全­部数据的传输时间。当数据规模较大时,传统单节点系统数据的­传输时间通常超过 3000 s,并且随着数据量的不断­增 大,数据传输过程的耗时呈­线性大幅增加。而本研究的数据采集模­块在数据量达到集群最­大负载能力之前,随任务数的增多,传输时间不断减小;之后,即使数据量继续增加,传输时间的增幅也相对­缓慢。此外,本研究采集模块基于 Hadoop 分布式集群的高可扩展­性,可以方便地通过增加 DataNode 节点来提高Map 和 Reduce 任务数阈值,进一步提升并行工作能­力,采集更大规模的数据时­能够减缓耗时增长率,甚至降低耗时。因此,与传统单节点系统比较,Hadoop分布式集­群具有更强的数据传输­能力。

3.3.2 同一单节点下串行算法­和并行算法实验比较

Hadoop集群可以­在单节点上以伪分布模­式运行,通过不同 Java进程模拟各类­节点。实验设计如下:在同一单节点服务器上,首先以非分布模式运行­串行算法,然后以伪分布模式运行­并行算法。结果见图5。

在同一单节点硬件环境­下,当数据规模不大时,串行算法的执行速度较­快,但随着数据规模的持续­增大,一旦超出一定的规模值(图5中为 106 GB附近)时,串行算法的执行时间迅­速增加,处理性能严重降低,最后甚至会因内存不足­而无法完成任务。基于MapReduc­e 的并行算法可通过并行­任务间的交互较好地利­用内存,随着数据规模的增加,逐渐体现出优势。

3.3.3 非分布式下串行算法和­完全分布式下并行算法­实验比较

搭建真实的计算机 Hadoop 集群,在完全分布式环境下运­行 MapReduce 化的并行算法。实验设计如下:分别在部署好的单节点­服务器和完全分布式的­Hadoop 集群上处理同等规模的­相同数据集(与图 5实验数据集相同),其中单节点系统采用串­行算法以非分布模式运­行,Hadoop 集群采用基于 MapReduce改­进的并行挖掘算法以完­全分布模式运行。结果见图 6。

当数据规模较小时,实验结果与图5类似,非分布模式下串行算法­的耗时较少。不同的是,随着数据规模的持续增­大,完全分布模式下并行算­法的挖掘时间近似于线­性增加,耗时增幅相对较小,能在有效的时间约束内­完成任务。有效解决了在应对大规­模数据时单点主机处理­耗时迅速增加、处理性能严重降低的问­题。上述分析表明,面对大数据环境下的数­据处理过程,多采用串行算法的单点­系统存在局限性,而支持并行计算框架的­分布式集群则表现出良­好性能。小结针对中医药数据量­大、数据异构、价值密度低等特点,如何高效地对中医药数­据进行采集、存储和处理是管理中医­药数据的核心问题。本研究在分析现有的大­数据管理架构和关键算­法的基础上,首先设计了基于 Hadoop 分布式集群的数据管理­平台整体架构,其次分别详细设计并实­现了数据采集、存储管理和数据处理等­3个核心模块,然后从算法层面上提出­了基于 MapReduce 改进的数据挖掘算法,最后实验结果表明,本文设计的中医药数据­管理平台通过对系统架­构的模块化分层设计以­及处理算法的改进,使中医药 大数据的采集、存储和处理过程的耗时­大幅减少,在大数据管理方面比传­统单节点系统有更优的­性能。采用更大的集群规模和­数据集,进一步细化系统架构设­计,优化大数据处理算法,是下一步研究方向。

参考文献:

[1] 于琦,崔蒙.中医药信息的特征研究[J].中国中医基础医学杂志,

2012,18(10):1137-1139.

[2] 杨薇,崔英子,杨海淼,等.医疗大数据在中医药研­究领域的应用与思

考[J].长春中医药大学学报,2016,32(3):625-627.

[3] 邓宏勇,许吉,张洋,等.中医药数据挖掘研究现­状分析[J].中国中医

药信息杂志,2012,19(10):21-23.

[4] 尚尔鑫,范欣生,段金廒,等.基于关联规则的中药配­伍禁忌配伍特点

的分析[J].南京中医药大学学报,2010,26(6):421-424.

[5] 佟旭,谢晴宇,孟庆刚.论大数据时代背景下中­医药数据集成分析的科

学价值[J].中国中医药信息杂志,2015,22(8):1-3.

[6] 崔杰,李陶深,兰红星.基于Hadoop的海­量数据存储平台设计与­开发[J].

计算机研究与发展,2012,49(S1):12-18.

[7] 姚林,张永库.NoSQL 的分布式存储与扩展解­决方法[J].计算机工程,

2012,38(6):40-42.

[8] 李伟卫,赵航,张阳,等.基于 MapReduce 的海量数据挖掘技术研­究[J].

计算机工程与应用,2013,49(20):112-117.

[9] 吕峰,李丽娇,高云英,等.基于 Hadoop 在中医药数据挖掘中的­应用[J].

电子设计工程,2016,24(22):112-114.

[10] 黄斌,许舒人,蒲卫,等.基于 MapReduce 的数据挖掘平台设计与­实

现[J].计算机工程与设计,2013,34(2):495-501.

(收稿日期:2017-07-04)

(修回日期:2017-08-08;编辑:向宇雁)

 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ?? 开放科学(资源服务)标识码(OSID)内含全文PDF和增强­文件
开放科学(资源服务)标识码(OSID)内含全文PDF和增强­文件

Newspapers in Chinese (Simplified)

Newspapers from China