梁楊 丁長(zhǎng)松 于俊洋
摘要:目的 為解決傳統(tǒng)方法采集、存儲(chǔ)和處理海量中醫(yī)藥數(shù)據(jù)的低效問題,探索數(shù)據(jù)管理的新策略。方法 根據(jù)中醫(yī)藥數(shù)據(jù)的典型特征,設(shè)計(jì)基于Hadoop的分層管理架構(gòu),對(duì)串行數(shù)據(jù)挖掘算法進(jìn)行MapReduce化改進(jìn);部署單節(jié)點(diǎn)服務(wù)器和分布式集群,采用8組不同規(guī)模的數(shù)據(jù)集,進(jìn)行數(shù)據(jù)采集實(shí)驗(yàn)和串并行算法實(shí)驗(yàn)。結(jié)果 數(shù)據(jù)傳輸時(shí)間在非分布式環(huán)境下通常超過3000 s,增幅較大,而在分布式集群下一般不超過300 s,增幅平緩;當(dāng)數(shù)據(jù)規(guī)模超過一定范圍后,與偽分布式和完全分布式下的并行算法比較,非分布式下串行算法的運(yùn)行耗時(shí)急劇增加。結(jié)論 與傳統(tǒng)單節(jié)點(diǎn)系統(tǒng)相比,基于Hadoop的中醫(yī)藥數(shù)據(jù)管理平臺(tái)采集、存儲(chǔ)及處理海量數(shù)據(jù)的效率明顯提高,尤其適用于大規(guī)模非結(jié)構(gòu)化或半結(jié)構(gòu)化的中醫(yī)藥數(shù)據(jù)。
關(guān)鍵詞:中醫(yī)藥數(shù)據(jù);Hadoop;分層管理;MapReduce;分布式
DOI:10.3969/j.issn.1005-5304.2018.05.021
中圖分類號(hào):R2-03 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 Information Science and Engineering, Hunan University of Chinese Medicine, Changsha 410208, China; 2. School of Information Science and Engineering, Central South University, Changsha 410083, China;
3. Software School, Henan University, Kaifeng 475001, China
Abstract: Objective To solve the inefficiencies of traditional methods of collecting, storing and processing mass TCM data; To explore new strategies for data management. Methods According to the typical characteristics of TCM data, a hierarchical management architecture based on Hadoop was designed and a processing algorithm based on MapReduce was improved. The single node server and Hadoop distributed clusters were deployed. Data acquisition experiment and serial and parallel algorithm experiments 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-distributed environment, while it generally did not exceed 300 seconds with moderate growth rate in distributed clusters. In addition, when the data size exceeded a certain range, the running time of the serial algorithm under non-distributed environment was drastically increased, comparing with the parallel algorithm under pseudo-distributed and fully distributed environment. Conclusion Compared with the traditional single node system, the TCM data management platform based on Hadoop has significantly improved the efficiency of collecting, storing and processing massive data, especially for large-scale unstructured or semi-structured TCM data.
Keywords: TCM data; Hadoop; hierarchical management; MapReduce; distributed
中醫(yī)藥數(shù)據(jù)具有異構(gòu)、數(shù)據(jù)量大、類型多樣、價(jià)
基金項(xiàng)目:國(guó)家重點(diǎn)研發(fā)計(jì)劃(SQ2017YFC170323);湖南省重點(diǎn)研發(fā)計(jì)劃(2017SK2111);湖南中醫(yī)藥大學(xué)青年教師科研基金(99820001-221)
通訊作者:丁長(zhǎng)松,E-mail:dinghongzhe@yeah.net
值密度低等特征[1]。目前對(duì)中醫(yī)藥數(shù)據(jù)的管理主要依賴于單節(jié)點(diǎn)系統(tǒng)。然而,面對(duì)海量高維的中醫(yī)藥數(shù)據(jù)時(shí),單節(jié)點(diǎn)系統(tǒng)在實(shí)現(xiàn)數(shù)據(jù)快速遷移、高并發(fā)讀寫及高并行處理等方面的局限性明顯[2],難以滿足中醫(yī)藥數(shù)據(jù)高效采集、存儲(chǔ)和處理的迫切需求[3-4]。為了在合理的時(shí)間約束內(nèi)完成對(duì)大規(guī)模中醫(yī)藥數(shù)據(jù)的處理,亟需研究更高效的數(shù)據(jù)管理模型和處理算法[5]。為此,本研究結(jié)合中醫(yī)藥數(shù)據(jù)特征,針對(duì)傳統(tǒng)中醫(yī)藥數(shù)據(jù)管理方法的局限性,設(shè)計(jì)了基于Hadoop的中醫(yī)藥數(shù)據(jù)管理平臺(tái)。
針對(duì)海量數(shù)據(jù)分布性、異構(gòu)性、多樣性的特點(diǎn),崔杰等[6]從系統(tǒng)編程實(shí)現(xiàn)的角度采用了MVC三層架構(gòu)設(shè)計(jì),結(jié)構(gòu)清晰,易于擴(kuò)展,但其結(jié)構(gòu)型模式數(shù)據(jù)交互性差,訪問效率低;針對(duì)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)無(wú)法滿足海量數(shù)據(jù)存儲(chǔ)與訪問的問題,姚林等[7]提出了基于NoSQL的分布式存儲(chǔ)與擴(kuò)展解決方法,有效降低了數(shù)據(jù)遷移的代價(jià)和風(fēng)險(xiǎn),提高了大數(shù)據(jù)高并發(fā)讀寫性能;李偉衛(wèi)等[8]將MapReduce編程模型應(yīng)用在數(shù)據(jù)挖掘算法中,有效提高了大數(shù)據(jù)挖掘工作的效率。在上述研究基礎(chǔ)上,本研究基于Hadoop分布式集群,提出的中醫(yī)藥數(shù)據(jù)管理平臺(tái)分層設(shè)計(jì)了數(shù)據(jù)采集、存儲(chǔ)管理及數(shù)據(jù)處理模塊,對(duì)應(yīng)解決海量數(shù)據(jù)在“采集-存儲(chǔ)-分析”過程中面臨的低效問題[9]。與此同時(shí),數(shù)據(jù)處理模塊采用基于MapReduce并行處理框架改進(jìn)的數(shù)據(jù)挖據(jù)算法,對(duì)任務(wù)進(jìn)行并行化處理,在面對(duì)海量中醫(yī)藥數(shù)據(jù)時(shí)提升了系統(tǒng)的計(jì)算效率[10]。
1 數(shù)據(jù)管理平臺(tái)分層設(shè)計(jì)
1.1 主體架構(gòu)
結(jié)合中醫(yī)藥數(shù)據(jù)的海量、異構(gòu)、多樣、復(fù)雜等特性,從分層管理的角度,設(shè)計(jì)并實(shí)現(xiàn)基于Hadoop的中醫(yī)藥數(shù)據(jù)管理架構(gòu),并對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行模塊化分層,耦合度低、內(nèi)聚性高、擴(kuò)展性好、獨(dú)立性強(qiáng)。數(shù)據(jù)管理平臺(tái)整體架構(gòu)由3個(gè)關(guān)鍵模塊(數(shù)據(jù)采集模塊、存儲(chǔ)管理模塊和數(shù)據(jù)處理模塊)構(gòu)成,主體架構(gòu)見圖1。
圖1 基于Hadoop的中醫(yī)藥數(shù)據(jù)管理平臺(tái)主體架構(gòu)
3個(gè)關(guān)鍵的功能模塊分別代表數(shù)據(jù)管理平臺(tái)的3個(gè)層次,并分別對(duì)應(yīng)數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)與查詢管理、數(shù)據(jù)處理分析這3個(gè)核心過程,屬層次化設(shè)計(jì)模式。數(shù)據(jù)流向由下至上,首先經(jīng)過采集模塊對(duì)數(shù)據(jù)信息進(jìn)行收集,然后流向數(shù)據(jù)庫(kù)所在層對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)管理,最后流向數(shù)據(jù)處理模塊完成分析和處理。
1.2 數(shù)據(jù)采集模塊
數(shù)據(jù)采集層的任務(wù)是把不同數(shù)據(jù)源中的數(shù)據(jù)采集并導(dǎo)入存儲(chǔ)設(shè)備,即數(shù)據(jù)傳輸?shù)倪^程。采集模塊核心部分是基于Sqoop開發(fā)的數(shù)據(jù)倉(cāng)庫(kù)模塊(ETL模塊),可用于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)和基于Hadoop的中醫(yī)藥數(shù)據(jù)管理平臺(tái)間的數(shù)據(jù)交換,能極大方便和簡(jiǎn)化數(shù)據(jù)遷移,改善數(shù)據(jù)互操作性,優(yōu)化數(shù)據(jù)利用方法。
具體數(shù)據(jù)傳輸過程:首先,ETL模塊通過JDBC與數(shù)據(jù)源連接,將采集到的SQL類型數(shù)據(jù)轉(zhuǎn)為Sqoop類型數(shù)據(jù)。然后,將其作為格式化的輸入數(shù)據(jù)提交給MapReduce任務(wù)。最后,啟動(dòng)部分?jǐn)?shù)量的Map和Reduce任務(wù),將數(shù)據(jù)存入分布式文件系統(tǒng)。
1.3 存儲(chǔ)管理模塊
存儲(chǔ)管理模塊基于分布式文件系統(tǒng)(HDFS)實(shí)現(xiàn)底層數(shù)據(jù)的物理存儲(chǔ)。訪問數(shù)據(jù)時(shí),不僅能保證系統(tǒng)具有較好的整體可用性和可靠性,而且具有較高的吞吐率。此外,本層采用Hive技術(shù),對(duì)基于Hadoop的中醫(yī)藥數(shù)據(jù)管理平臺(tái)的數(shù)據(jù)進(jìn)行整理、查詢和存儲(chǔ),高效地實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)管理功能。
在Hadoop集群上,本層模塊采用HDFS作為大數(shù)據(jù)的物理存儲(chǔ)單元,并利用Hive技術(shù)創(chuàng)建Hive數(shù)據(jù)倉(cāng)庫(kù),用作數(shù)據(jù)存儲(chǔ)的邏輯單元。Hive提供了類似于結(jié)構(gòu)化查詢語(yǔ)言(SQL)的Hive QL,高效地管理HDFS文件,彌補(bǔ)了SQL和關(guān)系型數(shù)據(jù)庫(kù)在大數(shù)據(jù)管理上的不足。
具體過程:Hadoop集群采用Master/Slave結(jié)構(gòu),指定1臺(tái)主機(jī)作為Master節(jié)點(diǎn),負(fù)責(zé)NameNode和TaskTracker的任務(wù)。其中,NameNode的主要作用是管理文件系統(tǒng)的命名空間,利用相關(guān)接口對(duì)文件的訪問進(jìn)行控制;而DataNode則按照NameNode指令以Data Block方式存儲(chǔ)中醫(yī)藥數(shù)據(jù)。HDFS采用DataNode間的數(shù)據(jù)拷貝策略,以盡量減少單點(diǎn)故障可能造成的不利影響,提高存儲(chǔ)管理模塊的安全性、魯棒性及可靠性。
1.4 數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊主要功能是高效地完成中醫(yī)藥大數(shù)據(jù)的分析處理。其中,數(shù)據(jù)挖掘算法對(duì)大數(shù)據(jù)的預(yù)測(cè)分析起到了關(guān)鍵的作用,為數(shù)據(jù)處理決策過程的重要基礎(chǔ)。本研究根據(jù)中醫(yī)藥數(shù)據(jù)海量、異構(gòu)等特點(diǎn),設(shè)計(jì)了基于Hadoop的大數(shù)據(jù)處理模塊,結(jié)構(gòu)見圖2。
圖2 大數(shù)據(jù)處理模塊
處理模塊層的關(guān)鍵是集成相關(guān)大數(shù)據(jù)處理算法,如數(shù)據(jù)挖掘算法、大數(shù)據(jù)推薦算法等。因此,為更好實(shí)現(xiàn)數(shù)據(jù)推薦,本模塊采用Mahout技術(shù),其提供的機(jī)器學(xué)習(xí)庫(kù)能高效實(shí)現(xiàn)數(shù)據(jù)推薦、分類、聚類等算法。
處理模塊層實(shí)現(xiàn)過程如下:首先,DataModel模塊根據(jù)用戶習(xí)慣將來(lái)自下層模塊的中醫(yī)藥數(shù)據(jù)進(jìn)行加載和存儲(chǔ);然后,Neighborhood模塊對(duì)DataModel存儲(chǔ)的數(shù)據(jù)進(jìn)行使用,并根據(jù)多個(gè)用戶間的相關(guān)性來(lái)計(jì)算用戶相似度;最后,把用戶相似度作為數(shù)據(jù)推薦模塊的輸入,通過數(shù)據(jù)推薦算法輸出推薦結(jié)果。
2 基于MapReduce的算法改進(jìn)
MapReduce并行計(jì)算框架是數(shù)據(jù)處理模塊的核心,負(fù)責(zé)大規(guī)模中醫(yī)藥數(shù)據(jù)集的并行計(jì)算、任務(wù)調(diào)度以及監(jiān)控等,其輸入來(lái)自于HDFS文件。當(dāng)執(zhí)行MapReduce程序時(shí),Map任務(wù)將運(yùn)行在集群的多個(gè)乃至全部節(jié)點(diǎn)上,從而能處理任意的文件輸入。Mapping階段生成的中間鍵值對(duì)必須在節(jié)點(diǎn)間進(jìn)行交換,通過關(guān)聯(lián)到數(shù)值上的不同鍵來(lái)隱式引導(dǎo),把具有相同鍵的數(shù)值發(fā)送到運(yùn)行同一個(gè)Reduce任務(wù)的結(jié)點(diǎn)進(jìn)行合并,形成最終結(jié)果。
處理算法的優(yōu)劣在軟件層面決定了處理效率的高低。因此,針對(duì)基于傳統(tǒng)關(guān)聯(lián)規(guī)則的串行數(shù)據(jù)挖據(jù)算法中存在的效率低、內(nèi)存消耗大、時(shí)間復(fù)雜度高、實(shí)現(xiàn)方法復(fù)雜等缺陷,本研究提出基于MapReduce改進(jìn)的并行挖掘算法,其具體流程如下:
①將原始事務(wù)集D劃分為N個(gè)(TID,list)格式的數(shù)據(jù)塊,分配給M個(gè)節(jié)點(diǎn)執(zhí)行獨(dú)立計(jì)算。其中,list是對(duì)應(yīng)的項(xiàng)目,TID為事務(wù)標(biāo)識(shí)符。
②執(zhí)行Map程序,首先掃描各數(shù)據(jù)塊,生成局部頻繁1項(xiàng)集,再生成各數(shù)據(jù)塊的局部候選k項(xiàng)集Cki,并計(jì)算局部候選項(xiàng)集的局部支持度local_supp。
③在相應(yīng)節(jié)點(diǎn)執(zhí)行Reduce程序,合并Map任務(wù)的輸出結(jié)果。
④在相應(yīng)節(jié)點(diǎn)上,通過Reduce函數(shù)對(duì)不同數(shù)據(jù)塊相同候選項(xiàng)集的支持度求和,進(jìn)而得出全局支持度。
⑤將局部候選k項(xiàng)集的全局支持度和最小支持度閾值進(jìn)行對(duì)比,進(jìn)一步求得局部頻繁k項(xiàng)集。
⑥將r個(gè)局部頻繁k項(xiàng)集進(jìn)行融合,進(jìn)而求得全局頻繁k項(xiàng)集。
⑦重復(fù)迭代,直至結(jié)束。
該算法的時(shí)間復(fù)雜度為O(n2),對(duì)應(yīng)的偽代碼見圖3。
基于MapReduce改進(jìn)的并行挖據(jù)算法
輸入 原分塊后的事務(wù)集Di,最小支持度閾值min_supp
輸出 頻繁項(xiàng)集L
Begin
L1=find_frequent_1-itemsets(Di);
for (k=2; Lk-1!=Φ; k++)
{
Cki=apriori_gen(Lk-1); ‘生成局部候選k項(xiàng)集
For each transaction t∈Di
{
Cli=Map();
}
Lk=Reduce();‘Lk是全局頻繁k項(xiàng)集
}
return L;
procedure Map(TID, list)
for each Im∈Cli‘Im是Cki的項(xiàng)
{
EmitIntermediate(Im, local_supp);
}
procedure Reduce(Im, local_supp)
result=0;
for each Im∈Cli
result+=ParseInt(local_supp);
Emit(Im, result);
End
圖3 基于MapReduce的并行算法偽代碼
3 實(shí)驗(yàn)設(shè)計(jì)與檢驗(yàn)
3.1 實(shí)驗(yàn)平臺(tái)部署
本研究在實(shí)驗(yàn)室條件下搭建Hadoop平臺(tái),將中醫(yī)藥數(shù)據(jù)管理平臺(tái)部署在具有6個(gè)節(jié)點(diǎn)分布式集群上,包括1個(gè)NameNode和5個(gè)DataNode。NamNode主要負(fù)責(zé)管理HDFS,DataNode主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)文件。
NameNode硬件配置。CUP:Intel? Core?i3-7100,雙核四線程處理器;內(nèi)存:16 GB;硬盤:2 TB。
DataNode節(jié)點(diǎn)硬件配置。CUP:Intel? Core? i3-7100,雙核四線程處理器;內(nèi)存:8 GB;硬盤:2 TB。
Hadoop集群軟件配置。操作系統(tǒng):Ubuntu14.04(64位);SSH:client和server;Java:OpenJDK 7; hadoop-2.7.1;數(shù)據(jù)庫(kù):MongoDB 3.2.8,Hive1.2.1,Eclipse;虛擬機(jī):VirtualBox。Hadoop平臺(tái)的具體搭建步驟不贅述。
此外,考慮到與分布式集群的比較,并盡量接近實(shí)際應(yīng)用,本研究選擇較高的硬件配置來(lái)部署單節(jié)點(diǎn)服務(wù)器。CUP:Intel? Core?i5-7500,四核四線程處理器;內(nèi)存:16 GB;硬盤:4 TB。在非分布式實(shí)驗(yàn)中選擇關(guān)系型數(shù)據(jù)庫(kù)MySQL進(jìn)行數(shù)據(jù)管理。
3.2 數(shù)據(jù)來(lái)源
采用的數(shù)據(jù)源來(lái)自國(guó)內(nèi)中醫(yī)藥在線公開的藥方數(shù)據(jù)庫(kù)(地址:dbshare.cintcm.com:8080/DartSubject/ index.htm、db.yaozh.com、cowork.cintcm.com/engine/ windex.jsp、www.taozhy.com/ShuJuKu/default.aspx、www.tcm100.com/ZhongYiYaoShuJuKu.aspx等),數(shù)據(jù)總量為1 TB,由于數(shù)據(jù)量有限,實(shí)驗(yàn)仿真允許選擇性重復(fù)使用相關(guān)數(shù)據(jù)。
3.3 結(jié)果與分析
3.3.1 數(shù)據(jù)采集實(shí)驗(yàn)比較
數(shù)據(jù)采集時(shí)間以數(shù)據(jù)傳輸時(shí)間作為主要評(píng)價(jià)指標(biāo)。本研究中的數(shù)據(jù)采集模塊采用了支持并行的Map和Reduce任務(wù)來(lái)提高數(shù)據(jù)的傳輸速率。因此,在不同集群配置下需通過多次不同數(shù)據(jù)規(guī)模的實(shí)驗(yàn)找出該集群整體性能和任務(wù)數(shù)能同時(shí)達(dá)到的最優(yōu)平衡點(diǎn)。結(jié)果見圖4。
圖4 數(shù)據(jù)采集實(shí)驗(yàn)結(jié)果
為計(jì)算數(shù)據(jù)由數(shù)據(jù)源到目標(biāo)文件系統(tǒng)的傳輸時(shí)間,實(shí)驗(yàn)設(shè)計(jì)如下:文件系統(tǒng)每接收到一條傳來(lái)的數(shù)據(jù)即自動(dòng)插入時(shí)間戳,當(dāng)所有數(shù)據(jù)傳輸完成時(shí)根據(jù)首尾兩條數(shù)據(jù)的時(shí)間戳之差即可計(jì)算出全部數(shù)據(jù)的傳輸時(shí)間。當(dāng)數(shù)據(jù)規(guī)模較大時(shí),傳統(tǒng)單節(jié)點(diǎn)系統(tǒng)數(shù)據(jù)的傳輸時(shí)間通常超過3000 s,并且隨著數(shù)據(jù)量的不斷增大,數(shù)據(jù)傳輸過程的耗時(shí)呈線性大幅增加。而本研究的數(shù)據(jù)采集模塊在數(shù)據(jù)量達(dá)到集群最大負(fù)載能力之前,隨任務(wù)數(shù)的增多,傳輸時(shí)間不斷減小;之后,即使數(shù)據(jù)量繼續(xù)增加,傳輸時(shí)間的增幅也相對(duì)緩慢。此外,本研究采集模塊基于Hadoop分布式集群的高可擴(kuò)展性,可以方便地通過增加DataNode節(jié)點(diǎn)來(lái)提高M(jìn)ap和Reduce任務(wù)數(shù)閾值,進(jìn)一步提升并行工作能力,采集更大規(guī)模的數(shù)據(jù)時(shí)能夠減緩耗時(shí)增長(zhǎng)率,甚至降低耗時(shí)。因此,與傳統(tǒng)單節(jié)點(diǎn)系統(tǒng)比較,Hadoop分布式集群具有更強(qiáng)的數(shù)據(jù)傳輸能力。
3.3.2 同一單節(jié)點(diǎn)下串行算法和并行算法實(shí)驗(yàn)比較
Hadoop集群可以在單節(jié)點(diǎn)上以偽分布模式運(yùn)行,通過不同Java進(jìn)程模擬各類節(jié)點(diǎn)。實(shí)驗(yàn)設(shè)計(jì)如下:在同一單節(jié)點(diǎn)服務(wù)器上,首先以非分布模式運(yùn)行串行算法,然后以偽分布模式運(yùn)行并行算法。結(jié)果見圖5。
圖5 單節(jié)點(diǎn)串并行算法實(shí)驗(yàn)對(duì)比
在同一單節(jié)點(diǎn)硬件環(huán)境下,當(dāng)數(shù)據(jù)規(guī)模不大時(shí),串行算法的執(zhí)行速度較快,但隨著數(shù)據(jù)規(guī)模的持續(xù)增大,一旦超出一定的規(guī)模值(圖5中為106 GB附近)時(shí),串行算法的執(zhí)行時(shí)間迅速增加,處理性能嚴(yán)重降低,最后甚至?xí)騼?nèi)存不足而無(wú)法完成任務(wù)?;贛apReduce的并行算法可通過并行任務(wù)間的交互較好地利用內(nèi)存,隨著數(shù)據(jù)規(guī)模的增加,逐漸體現(xiàn)出優(yōu)勢(shì)。
3.3.3 非分布式下串行算法和完全分布式下并行算法實(shí)驗(yàn)比較
搭建真實(shí)的計(jì)算機(jī)Hadoop集群,在完全分布式環(huán)境下運(yùn)行MapReduce化的并行算法。實(shí)驗(yàn)設(shè)計(jì)如下:分別在部署好的單節(jié)點(diǎn)服務(wù)器和完全分布式的Hadoop集群上處理同等規(guī)模的相同數(shù)據(jù)集(與圖5實(shí)驗(yàn)數(shù)據(jù)集相同),其中單節(jié)點(diǎn)系統(tǒng)采用串行算法以非分布模式運(yùn)行,Hadoop集群采用基于MapReduce改進(jìn)的并行挖掘算法以完全分布模式運(yùn)行。結(jié)果見圖6。
圖6 非分布式和完全分布式實(shí)驗(yàn)對(duì)比
當(dāng)數(shù)據(jù)規(guī)模較小時(shí),實(shí)驗(yàn)結(jié)果與圖5類似,非分布模式下串行算法的耗時(shí)較少。不同的是,隨著數(shù)據(jù)規(guī)模的持續(xù)增大,完全分布模式下并行算法的挖掘時(shí)間近似于線性增加,耗時(shí)增幅相對(duì)較小,能在有效的時(shí)間約束內(nèi)完成任務(wù)。有效解決了在應(yīng)對(duì)大規(guī)模數(shù)據(jù)時(shí)單點(diǎn)主機(jī)處理耗時(shí)迅速增加、處理性能嚴(yán)重降低的問題。上述分析表明,面對(duì)大數(shù)據(jù)環(huán)境下的數(shù)據(jù)處理過程,多采用串行算法的單點(diǎn)系統(tǒng)存在局限性,而支持并行計(jì)算框架的分布式集群則表現(xiàn)出良好性能。
4 小結(jié)
針對(duì)中醫(yī)藥數(shù)據(jù)量大、數(shù)據(jù)異構(gòu)、價(jià)值密度低等特點(diǎn),如何高效地對(duì)中醫(yī)藥數(shù)據(jù)進(jìn)行采集、存儲(chǔ)和處理是管理中醫(yī)藥數(shù)據(jù)的核心問題。本研究在分析現(xiàn)有的大數(shù)據(jù)管理架構(gòu)和關(guān)鍵算法的基礎(chǔ)上,首先設(shè)計(jì)了基于Hadoop分布式集群的數(shù)據(jù)管理平臺(tái)整體架構(gòu),其次分別詳細(xì)設(shè)計(jì)并實(shí)現(xiàn)了數(shù)據(jù)采集、存儲(chǔ)管理和數(shù)據(jù)處理等3個(gè)核心模塊,然后從算法層面上提出了基于MapReduce改進(jìn)的數(shù)據(jù)挖掘算法,最后實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的中醫(yī)藥數(shù)據(jù)管理平臺(tái)通過對(duì)系統(tǒng)架構(gòu)的模塊化分層設(shè)計(jì)以及處理算法的改進(jìn),使中醫(yī)藥大數(shù)據(jù)的采集、存儲(chǔ)和處理過程的耗時(shí)大幅減少,在大數(shù)據(jù)管理方面比傳統(tǒng)單節(jié)點(diǎn)系統(tǒng)有更優(yōu)的性能。采用更大的集群規(guī)模和數(shù)據(jù)集,進(jìn)一步細(xì)化系統(tǒng)架構(gòu)設(shè)計(jì),優(yōu)化大數(shù)據(jù)處理算法,是下一步研究方向。
參考文獻(xiàn):
[1] 于琦,崔蒙.中醫(yī)藥信息的特征研究[J].中國(guó)中醫(yī)基礎(chǔ)醫(yī)學(xué)雜志, 2012,18(10):1137-1139.
[2] 楊薇,崔英子,楊海淼,等.醫(yī)療大數(shù)據(jù)在中醫(yī)藥研究領(lǐng)域的應(yīng)用與思考[J].長(zhǎng)春中醫(yī)藥大學(xué)學(xué)報(bào),2016,32(3):625-627.
[3] 鄧宏勇,許吉,張洋,等.中醫(yī)藥數(shù)據(jù)挖掘研究現(xiàn)狀分析[J].中國(guó)中醫(yī)藥信息雜志,2012,19(10):21-23.
[4] 尚爾鑫,范欣生,段金廒,等.基于關(guān)聯(lián)規(guī)則的中藥配伍禁忌配伍特點(diǎn)的分析[J].南京中醫(yī)藥大學(xué)學(xué)報(bào),2010,26(6):421-424.
[5] 佟旭,謝晴宇,孟慶剛.論大數(shù)據(jù)時(shí)代背景下中醫(yī)藥數(shù)據(jù)集成分析的科學(xué)價(jià)值[J].中國(guó)中醫(yī)藥信息雜志,2015,22(8):1-3.
[6] 崔杰,李陶深,蘭紅星.基于Hadoop的海量數(shù)據(jù)存儲(chǔ)平臺(tái)設(shè)計(jì)與開發(fā)[J].計(jì)算機(jī)研究與發(fā)展,2012,49(S1):12-18.
[7] 姚林,張永庫(kù).NoSQL的分布式存儲(chǔ)與擴(kuò)展解決方法[J].計(jì)算機(jī)工程, 2012,38(6):40-42.
[8] 李偉衛(wèi),趙航,張陽(yáng),等.基于MapReduce的海量數(shù)據(jù)挖掘技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(20):112-117.
[9] 呂峰,李麗嬌,高云英,等.基于Hadoop在中醫(yī)藥數(shù)據(jù)挖掘中的應(yīng)用[J].電子設(shè)計(jì)工程,2016,24(22):112-114.
[10] 黃斌,許舒人,蒲衛(wèi),等.基于MapReduce的數(shù)據(jù)挖掘平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(2):495-501.
(收稿日期:2017-07-04)
(修回日期:2017-08-08;編輯:向宇雁)