朱平哲
(三門峽職業(yè)技術(shù)學(xué)院 信息傳媒學(xué)院,河南 三門峽 472000)
目前,大數(shù)據(jù)分析技術(shù)和網(wǎng)絡(luò)技術(shù)正在被廣泛地應(yīng)用于包括醫(yī)療領(lǐng)域在內(nèi)的多個(gè)業(yè)務(wù)領(lǐng)域,該項(xiàng)技術(shù)已連續(xù)多年被全球研究機(jī)構(gòu)評(píng)為當(dāng)前最重要和最具影響力的技術(shù)之一[1-4],并與物聯(lián)網(wǎng)技術(shù)、人工智能技術(shù)一起在高級(jí)分析和實(shí)時(shí)分析等多個(gè)領(lǐng)域獲得了長(zhǎng)足的發(fā)展.由于這些技術(shù)均需要借助大量的資源,因此亟需對(duì)分布式云特別是混合云技術(shù)展開深入的研究,而基于軟件定義架構(gòu)的分布式云可以提供性能優(yōu)越的低延遲服務(wù)[5].
然而,混合云和醫(yī)療環(huán)境中存在諸如性能和成本等多方面的限制,因此,難以針對(duì)混合云環(huán)境的計(jì)算性能進(jìn)行有效精確的預(yù)測(cè).因此,有必要研究一種動(dòng)態(tài)的工作流生成和管理方法,以滿足混合云環(huán)境下用戶的分析需求[6],而在高級(jí)分析和實(shí)時(shí)分析中,分析質(zhì)量(Quality of Analysis,QoA)與處理時(shí)間(Deadline)之間始終需要進(jìn)行權(quán)衡[7-8].在此背景下,本文對(duì)二者之間的關(guān)系展開了深入研究,首先假定待分析的數(shù)據(jù)量與QoA成正比例關(guān)系.對(duì)于最優(yōu)的權(quán)衡決策,需要在生成工作流時(shí)考慮從數(shù)據(jù)收集到?jīng)Q策制定的全過(guò)程.此外,混合云環(huán)境的工作流模型需要考慮諸如流、微批量和批處理等各種數(shù)據(jù)處理方法之間的協(xié)作處理.
為了克服現(xiàn)有混合云環(huán)境的局限性,提出了一個(gè)系統(tǒng)和工作流模型,該系統(tǒng)是采用了工作流模型的“混合大數(shù)據(jù)處理系統(tǒng)(Big Data Processing System,BDPS)”.針對(duì)所提出的BDPS,分析了最佳工作流配置的性能影響因素,不僅如此,還針對(duì)評(píng)估結(jié)果進(jìn)行了展示以探索可能對(duì)系統(tǒng)配置產(chǎn)生的影響.
全文結(jié)構(gòu)如下:作為BDPS模型的基礎(chǔ),第1節(jié)研究了Lambda體系結(jié)構(gòu)和動(dòng)態(tài)工作流;第2節(jié)具體介紹了BDPS體系結(jié)構(gòu)和工作流模型;第3節(jié)對(duì)全文進(jìn)行了總結(jié).
Lambda體系結(jié)構(gòu)[9]采用批處理和流處理方法對(duì)大批量數(shù)據(jù)加以處理,該體系結(jié)構(gòu)是由批處理層、實(shí)時(shí)處理層和服務(wù)層所構(gòu)成.其中,批處理層負(fù)責(zé)處理大型存儲(chǔ)數(shù)據(jù)集,實(shí)時(shí)處理層負(fù)責(zé)及時(shí)處理采集到的數(shù)據(jù),而服務(wù)層通過(guò)批處理層和實(shí)時(shí)處理層提供處理數(shù)據(jù)的查詢視圖.
為了實(shí)時(shí)處理數(shù)據(jù)并向用戶實(shí)時(shí)提供查詢視圖,文獻(xiàn)[10]采用了Lambda架構(gòu)成功地對(duì)流數(shù)據(jù)進(jìn)行了處理.在文獻(xiàn)[10]中構(gòu)造的系統(tǒng)中,批處理層無(wú)限次地針對(duì)MapReduce函數(shù)進(jìn)行了重復(fù),其實(shí)質(zhì)為基于storm的實(shí)時(shí)處理層和基于Hadoop的批處理層間的融合,并使用每一層的完整數(shù)據(jù)為用戶提供查詢視圖.
目前,針對(duì)大數(shù)據(jù)的研究工作主要集中在自動(dòng)化以及任務(wù)管理上.因此,在醫(yī)療大數(shù)據(jù)處理系統(tǒng)中,亟需一種基于動(dòng)態(tài)工作流生成方法的最優(yōu)權(quán)衡來(lái)處理各種分析請(qǐng)求[11].文獻(xiàn)[12]基于OASIS標(biāo)準(zhǔn)之一的云應(yīng)用拓?fù)浜蜆I(yè)務(wù)流程規(guī)范(Topology and Orchestration Specification for Cloud Applications,TOSCA),提出了云環(huán)境下一種自動(dòng)的工作流生成方法,該方法采用擴(kuò)展的TOSCA可以很便利地生成自動(dòng)化工作流.文獻(xiàn)[13]中將工作流從云端下載到本地,構(gòu)建了Emerald系統(tǒng)以提升整體處理性能.
本文所提出的大數(shù)據(jù)處理系統(tǒng)(Big Data Processing System,BDPS)可以生成滿足用戶需求的最佳工作流.為了生成盡可能準(zhǔn)確的工作流,BDPS在大數(shù)據(jù)的特性中,確定了對(duì)應(yīng)于價(jià)值和速度的QoA和截止期限間的最佳權(quán)衡.此外,該系統(tǒng)綜合了多種數(shù)據(jù)處理方法執(zhí)行了數(shù)據(jù)協(xié)作處理,并同時(shí)考慮了混合云環(huán)境中的各種數(shù)據(jù)處理基礎(chǔ)設(shè)施.因此,BDPS的數(shù)據(jù)處理層由多層所構(gòu)成,而Lambda體系結(jié)構(gòu)是由批處理層和實(shí)時(shí)處理層構(gòu)成.
BDPS是由服務(wù)(Service,SV)層、數(shù)據(jù)流程(Data Orchestration,DO)層和大數(shù)據(jù)處理(Big data Processing,BP)層所構(gòu)成,如圖1所示.
圖1 BDPS體系結(jié)構(gòu)
SV層根據(jù)用戶的需求分析生成工作流.當(dāng)BDPS根據(jù)規(guī)范生成工作流時(shí),它將從DO層收集數(shù)據(jù)信息,并從BP層中收集工作節(jié)點(diǎn)信息,然后根據(jù)分析要求確定最優(yōu)折衷方案.其中,分析要求包括QoA和截止期限.QoA決定一次分析多少行數(shù)據(jù),而截止時(shí)限則對(duì)任務(wù)的處理速度提出了要求.為了滿足基于折衷方案的性能要求,可以考慮進(jìn)行擴(kuò)展或編程加以配置.
DO層主要負(fù)責(zé)執(zhí)行數(shù)據(jù)同步、數(shù)據(jù)搜索等數(shù)據(jù)管理,并通過(guò)服務(wù)類型和生成的工作流將DO層與關(guān)系數(shù)據(jù)庫(kù)、內(nèi)存數(shù)據(jù)庫(kù)、圖形數(shù)據(jù)庫(kù)等數(shù)據(jù)存儲(chǔ)相連接.為實(shí)現(xiàn)高效的數(shù)據(jù)管理,DO層使用圖形數(shù)據(jù)庫(kù)創(chuàng)建并對(duì)數(shù)據(jù)本體進(jìn)行管理.數(shù)據(jù)本體表示可以由計(jì)算機(jī)加以處理的表單中數(shù)據(jù)的關(guān)系,且可以對(duì)數(shù)據(jù)同步和搜索進(jìn)行改進(jìn).通過(guò)使用數(shù)據(jù)本體,可以從用戶感興趣的主題中智能地搜索數(shù)據(jù).此外,也可以通過(guò)關(guān)系將分區(qū)數(shù)據(jù)加以同步.
BP層是由流層、微批量層和批處理層所構(gòu)成,并可以根據(jù)工作流和數(shù)據(jù)處理方法的特點(diǎn)對(duì)數(shù)據(jù)加以處理.例如,BP層可以在流層中對(duì)收集到的數(shù)據(jù)進(jìn)行預(yù)處理.根據(jù)分析要求,在微批量層或批量層進(jìn)行數(shù)據(jù)處理.BP層通過(guò)層間的協(xié)同處理提升分析性能,有助于確定最佳的權(quán)衡方式.BP層中每一層的描述如下.
(1) 流層負(fù)責(zé)實(shí)時(shí)對(duì)收集到的流數(shù)據(jù)執(zhí)行預(yù)處理、本體生成和流分析.通常,在Apache開放源碼項(xiàng)目中擁有諸如Storm和Spark流的項(xiàng)目.
(2) 相比批處理層,微批量層處理的數(shù)據(jù)量相對(duì)較小,它主要負(fù)責(zé)處理側(cè)重于完成期限的高優(yōu)先級(jí)任務(wù).
(3)為了滿足分析要求,批處理層負(fù)責(zé)處理大量數(shù)據(jù)或執(zhí)行數(shù)據(jù)采樣.如果需要處理質(zhì)量?jī)?yōu)先級(jí)任務(wù),可以對(duì)批處理層中未采樣的原始大數(shù)據(jù)進(jìn)行處理以提高分析質(zhì)量.
當(dāng)BDPS從用戶處收到醫(yī)療大數(shù)據(jù)處理需求規(guī)范時(shí),BDPS將對(duì)醫(yī)療大數(shù)據(jù)執(zhí)行以下處理.
首先,將采集到的數(shù)據(jù)經(jīng)過(guò)預(yù)處理后存儲(chǔ)在DO層和BP層.BDPS將收集到數(shù)據(jù)的元數(shù)據(jù)作為基于本體的圖進(jìn)行管理,以便快速搜索需求規(guī)范所需的數(shù)據(jù).此時(shí),可以通過(guò)服務(wù)管理員的數(shù)據(jù)管理策略定位存儲(chǔ).為了保障數(shù)據(jù)安全,存儲(chǔ)前后均需考隱私層面的預(yù)處理.
其次,當(dāng)用戶請(qǐng)求進(jìn)行醫(yī)療大數(shù)據(jù)處理時(shí),SV層將執(zhí)行節(jié)點(diǎn)擴(kuò)展,并根據(jù)物理機(jī)器的分析需求和資源狀態(tài)動(dòng)態(tài)生成工作流.為了優(yōu)化流程,可以重復(fù)權(quán)衡方案的確定流程,從而生成如圖2所示的工作流.通過(guò)使用生成的工作流,DO層通過(guò)在本體元數(shù)據(jù)中基于相關(guān)性檢索來(lái)準(zhǔn)備所需的數(shù)據(jù).通過(guò)生成的工作流,BP層在各層間執(zhí)行協(xié)同數(shù)據(jù)處理.根據(jù)在SV層確定的權(quán)衡方案,在每個(gè)相應(yīng)層中執(zhí)行數(shù)據(jù)采樣、數(shù)據(jù)預(yù)處理和數(shù)據(jù)分析.
圖2 BDPS工作流管理流程圖
其中Ps為用戶滿意度,Tps為用戶滿意度閾值,Po為計(jì)算開銷預(yù)測(cè),Tpo為計(jì)算開銷預(yù)測(cè)的閾值,Nr為重復(fù)次數(shù),Tnc為重復(fù)次數(shù)的閾值.
為了滿足BDPS中的用戶需求,需要生成一個(gè)具有合適有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG)組合的最佳工作流,并盡可能地降低總延遲.為了生成一個(gè)最佳的工作流,需要通過(guò)評(píng)估批處理方法的性能來(lái)分析性能影響因素,該方法以工作流中的總延遲為代價(jià).下節(jié)將采用Hadoop進(jìn)行性能評(píng)估來(lái)研究批處理的延遲問(wèn)題.
Hadoop在將數(shù)據(jù)劃分并存儲(chǔ)在HDFS塊后,針對(duì)每個(gè)塊執(zhí)行基于MapReduce的批處理操作.因此,影響批處理配置的性能包括HDFS的塊大小、每個(gè)塊的映射器/減法器、每次迭代的數(shù)據(jù)大小、映射器線程數(shù)、數(shù)據(jù)采樣率等.本文使用數(shù)據(jù)溢出大小、映射器線程數(shù)和根據(jù)工作流進(jìn)行動(dòng)態(tài)配置的數(shù)據(jù)采樣率執(zhí)行評(píng)估.
為了進(jìn)行性能評(píng)估,5臺(tái)同構(gòu)虛擬機(jī)(Virtual Machines,VMs)配備了雙核CPU、4GB RAM和50GB硬盤.有1個(gè)主節(jié)點(diǎn)/3個(gè)從節(jié)點(diǎn)用于數(shù)據(jù)處理,此外還有1個(gè)消息傳遞節(jié)點(diǎn).每臺(tái)虛擬機(jī)均安裝了Ubuntu服務(wù)器,ZooKeeper(3.4.9),Hazelcast(3.8),Hadoop(2.7.3),Spark(2.1.0)和MQTT(3.1).采用Hadoop進(jìn)行批處理、Spark進(jìn)行流處理和微批量處理、ZooKeeper進(jìn)行應(yīng)用協(xié)調(diào)、Hazelcast用于內(nèi)存存儲(chǔ)和中間緩沖區(qū),MQTT用于通信.在所有仿真實(shí)驗(yàn)中采用醫(yī)療數(shù)據(jù)集,分別為案例1(14 000行)、案例2(35 000行)和案例3(70 000行).盡管模擬數(shù)據(jù)集并非大數(shù)據(jù),但可以通過(guò)動(dòng)態(tài)配置快速地顯示評(píng)估結(jié)果.仿真的工作負(fù)載包括數(shù)據(jù)加載、預(yù)處理和僅由映射器模型進(jìn)行的分析處理.在工作負(fù)載的每一階段,臨時(shí)數(shù)據(jù)均被存儲(chǔ)在內(nèi)存存儲(chǔ)器中以最小化HDFS的運(yùn)行開銷.
首先,數(shù)據(jù)拆分大小表示在映射器線程的每次迭代中要處理的數(shù)據(jù)集行數(shù),如圖3所示.
圖3 映射器線程迭代中的評(píng)估結(jié)果
在6個(gè)映射器線程中,數(shù)據(jù)集從6行(每個(gè)單線程1行)變化為122 880行(每個(gè)單線程20 480行).除了虛擬機(jī)使用過(guò)程中導(dǎo)致的錯(cuò)誤以外,三個(gè)案例在數(shù)據(jù)拆分大小達(dá)到7 680行以前的處理時(shí)間大致相同.當(dāng)數(shù)據(jù)拆分大小超過(guò)7 680行時(shí),三個(gè)案例的處理時(shí)間均迅速上升;其次,根據(jù)圖3的性能評(píng)估結(jié)果,所有數(shù)據(jù)處理方法的仿真結(jié)果如圖4所示,其中包括流處理、微批量處理和批處理.本文基于BDPS針對(duì)患者的血液測(cè)試數(shù)據(jù)建立了一個(gè)醫(yī)療數(shù)據(jù)分析方案.分析方案包括數(shù)據(jù)加載、預(yù)處理和分析,這些分析通過(guò)微批量處理進(jìn)行了簡(jiǎn)單的統(tǒng)計(jì)分析.在整個(gè)過(guò)程中,批處理任務(wù)由于可以包含個(gè)人信息,因而是在混合云環(huán)境的私有云中加以執(zhí)行的,而流處理和微批量處理則是在公共云中以高性能加以執(zhí)行.
圖4 批處理、流處理、微批量處理的評(píng)估結(jié)果
圖4中數(shù)據(jù)處理的延遲時(shí)間是指當(dāng)前任務(wù)完成后,直到下一個(gè)任務(wù)完成的時(shí)間.此時(shí),下一任務(wù)并不等待當(dāng)前任務(wù)的完成,即在當(dāng)前任務(wù)中處理流或微批處理的數(shù)據(jù)時(shí),就會(huì)啟動(dòng)下一個(gè)任務(wù).例如,分別有批處理時(shí)間、流處理時(shí)間和微批量處理時(shí)間.批處理時(shí)間是指批處理任務(wù)完成之前的時(shí)間;流處理時(shí)間是批處理任務(wù)完成后,直到流處理任務(wù)完成的時(shí)間;微批量處理時(shí)間是流處理任務(wù)完成后,微批處理任務(wù)完成的時(shí)間.
在仿真實(shí)驗(yàn)結(jié)果中,除單個(gè)映射器線程外,所有案例下的總處理時(shí)間均基本一致,且批處理程序的延遲時(shí)間模式與圖3的實(shí)驗(yàn)結(jié)果較為相似.隨著批處理程序延遲時(shí)間的減少,可以發(fā)現(xiàn)流處理程序的延遲時(shí)間逐漸增加.當(dāng)映射器線程數(shù)為1時(shí),流處理和批處理任務(wù)的完成時(shí)間相同,且二者之間沒(méi)有延遲.由于內(nèi)存存儲(chǔ)I/O中的存儲(chǔ)鎖和瓶頸的存在,相對(duì)較小的數(shù)據(jù)拆分而言,較大數(shù)據(jù)拆分(1920行)的流處理任務(wù)往往需要更長(zhǎng)的延遲時(shí)間.
為了進(jìn)一步驗(yàn)證本文提出的工作流模型的有效性,本節(jié)還選取了一種基于網(wǎng)絡(luò)流的工作流模型(Netflow-Based Assignment Judgment,NBAJ)[14]進(jìn)行比較.NBAJ將資源分配問(wèn)題中涉及的資源、資源類型以及活動(dòng)節(jié)點(diǎn)等三類元素映射到一個(gè)網(wǎng)絡(luò)流模型上;而BDPS系統(tǒng)僅考慮兩個(gè)因素,即對(duì)應(yīng)于價(jià)值和速度的QoA和截止期限間的最佳權(quán)衡,因此涉及到的因素更為集中,實(shí)現(xiàn)起來(lái)也更為直觀便捷.
為了滿足用戶的分析需求,提出了一種面向用戶的BDPS系統(tǒng)和工作流模型.BDPS分析了性能影響因素,并對(duì)不同配置設(shè)置下的批處理性能進(jìn)行了評(píng)估,從而確定權(quán)衡方案并動(dòng)態(tài)地生成工作流.仿真實(shí)驗(yàn)表明本文提出的BDPS系統(tǒng)可以為混合云中的醫(yī)療大數(shù)據(jù)分析提供一種有效的數(shù)據(jù)處理方法.如何將BDPS進(jìn)一步應(yīng)用于多種不同用例中將是下一步工作的重點(diǎn).