APP下载

基于混合云的医疗大数据处理系统设计

2020-03-24朱平哲

吉林化工学院学报 2020年1期
关键词:批处理权衡批量

朱平哲

(三门峡职业技术学院 信息传媒学院,河南 三门峡 472000)

目前,大数据分析技术和网络技术正在被广泛地应用于包括医疗领域在内的多个业务领域,该项技术已连续多年被全球研究机构评为当前最重要和最具影响力的技术之一[1-4],并与物联网技术、人工智能技术一起在高级分析和实时分析等多个领域获得了长足的发展.由于这些技术均需要借助大量的资源,因此亟需对分布式云特别是混合云技术展开深入的研究,而基于软件定义架构的分布式云可以提供性能优越的低延迟服务[5].

然而,混合云和医疗环境中存在诸如性能和成本等多方面的限制,因此,难以针对混合云环境的计算性能进行有效精确的预测.因此,有必要研究一种动态的工作流生成和管理方法,以满足混合云环境下用户的分析需求[6],而在高级分析和实时分析中,分析质量(Quality of Analysis,QoA)与处理时间(Deadline)之间始终需要进行权衡[7-8].在此背景下,本文对二者之间的关系展开了深入研究,首先假定待分析的数据量与QoA成正比例关系.对于最优的权衡决策,需要在生成工作流时考虑从数据收集到决策制定的全过程.此外,混合云环境的工作流模型需要考虑诸如流、微批量和批处理等各种数据处理方法之间的协作处理.

为了克服现有混合云环境的局限性,提出了一个系统和工作流模型,该系统是采用了工作流模型的“混合大数据处理系统(Big Data Processing System,BDPS)”.针对所提出的BDPS,分析了最佳工作流配置的性能影响因素,不仅如此,还针对评估结果进行了展示以探索可能对系统配置产生的影响.

全文结构如下:作为BDPS模型的基础,第1节研究了Lambda体系结构和动态工作流;第2节具体介绍了BDPS体系结构和工作流模型;第3节对全文进行了总结.

1 算法描述Lambda体系结构与动态工作流

Lambda体系结构[9]采用批处理和流处理方法对大批量数据加以处理,该体系结构是由批处理层、实时处理层和服务层所构成.其中,批处理层负责处理大型存储数据集,实时处理层负责及时处理采集到的数据,而服务层通过批处理层和实时处理层提供处理数据的查询视图.

为了实时处理数据并向用户实时提供查询视图,文献[10]采用了Lambda架构成功地对流数据进行了处理.在文献[10]中构造的系统中,批处理层无限次地针对MapReduce函数进行了重复,其实质为基于storm的实时处理层和基于Hadoop的批处理层间的融合,并使用每一层的完整数据为用户提供查询视图.

目前,针对大数据的研究工作主要集中在自动化以及任务管理上.因此,在医疗大数据处理系统中,亟需一种基于动态工作流生成方法的最优权衡来处理各种分析请求[11].文献[12]基于OASIS标准之一的云应用拓扑和业务流程规范(Topology and Orchestration Specification for Cloud Applications,TOSCA),提出了云环境下一种自动的工作流生成方法,该方法采用扩展的TOSCA可以很便利地生成自动化工作流.文献[13]中将工作流从云端下载到本地,构建了Emerald系统以提升整体处理性能.

2 医疗大数据处理系统

本文所提出的大数据处理系统(Big Data Processing System,BDPS)可以生成满足用户需求的最佳工作流.为了生成尽可能准确的工作流,BDPS在大数据的特性中,确定了对应于价值和速度的QoA和截止期限间的最佳权衡.此外,该系统综合了多种数据处理方法执行了数据协作处理,并同时考虑了混合云环境中的各种数据处理基础设施.因此,BDPS的数据处理层由多层所构成,而Lambda体系结构是由批处理层和实时处理层构成.

2.1 系统体系结构

BDPS是由服务(Service,SV)层、数据流程(Data Orchestration,DO)层和大数据处理(Big data Processing,BP)层所构成,如图1所示.

图1 BDPS体系结构

SV层根据用户的需求分析生成工作流.当BDPS根据规范生成工作流时,它将从DO层收集数据信息,并从BP层中收集工作节点信息,然后根据分析要求确定最优折衷方案.其中,分析要求包括QoA和截止期限.QoA决定一次分析多少行数据,而截止时限则对任务的处理速度提出了要求.为了满足基于折衷方案的性能要求,可以考虑进行扩展或编程加以配置.

DO层主要负责执行数据同步、数据搜索等数据管理,并通过服务类型和生成的工作流将DO层与关系数据库、内存数据库、图形数据库等数据存储相连接.为实现高效的数据管理,DO层使用图形数据库创建并对数据本体进行管理.数据本体表示可以由计算机加以处理的表单中数据的关系,且可以对数据同步和搜索进行改进.通过使用数据本体,可以从用户感兴趣的主题中智能地搜索数据.此外,也可以通过关系将分区数据加以同步.

BP层是由流层、微批量层和批处理层所构成,并可以根据工作流和数据处理方法的特点对数据加以处理.例如,BP层可以在流层中对收集到的数据进行预处理.根据分析要求,在微批量层或批量层进行数据处理.BP层通过层间的协同处理提升分析性能,有助于确定最佳的权衡方式.BP层中每一层的描述如下.

(1) 流层负责实时对收集到的流数据执行预处理、本体生成和流分析.通常,在Apache开放源码项目中拥有诸如Storm和Spark流的项目.

(2) 相比批处理层,微批量层处理的数据量相对较小,它主要负责处理侧重于完成期限的高优先级任务.

(3)为了满足分析要求,批处理层负责处理大量数据或执行数据采样.如果需要处理质量优先级任务,可以对批处理层中未采样的原始大数据进行处理以提高分析质量.

当BDPS从用户处收到医疗大数据处理需求规范时,BDPS将对医疗大数据执行以下处理.

首先,将采集到的数据经过预处理后存储在DO层和BP层.BDPS将收集到数据的元数据作为基于本体的图进行管理,以便快速搜索需求规范所需的数据.此时,可以通过服务管理员的数据管理策略定位存储.为了保障数据安全,存储前后均需考隐私层面的预处理.

其次,当用户请求进行医疗大数据处理时,SV层将执行节点扩展,并根据物理机器的分析需求和资源状态动态生成工作流.为了优化流程,可以重复权衡方案的确定流程,从而生成如图2所示的工作流.通过使用生成的工作流,DO层通过在本体元数据中基于相关性检索来准备所需的数据.通过生成的工作流,BP层在各层间执行协同数据处理.根据在SV层确定的权衡方案,在每个相应层中执行数据采样、数据预处理和数据分析.

图2 BDPS工作流管理流程图

其中Ps为用户满意度,Tps为用户满意度阈值,Po为计算开销预测,Tpo为计算开销预测的阈值,Nr为重复次数,Tnc为重复次数的阈值.

为了满足BDPS中的用户需求,需要生成一个具有合适有向无环图(Directed Acyclic Graph,DAG)组合的最佳工作流,并尽可能地降低总延迟.为了生成一个最佳的工作流,需要通过评估批处理方法的性能来分析性能影响因素,该方法以工作流中的总延迟为代价.下节将采用Hadoop进行性能评估来研究批处理的延迟问题.

2.2 性能评估

Hadoop在将数据划分并存储在HDFS块后,针对每个块执行基于MapReduce的批处理操作.因此,影响批处理配置的性能包括HDFS的块大小、每个块的映射器/减法器、每次迭代的数据大小、映射器线程数、数据采样率等.本文使用数据溢出大小、映射器线程数和根据工作流进行动态配置的数据采样率执行评估.

为了进行性能评估,5台同构虚拟机(Virtual Machines,VMs)配备了双核CPU、4GB RAM和50GB硬盘.有1个主节点/3个从节点用于数据处理,此外还有1个消息传递节点.每台虚拟机均安装了Ubuntu服务器,ZooKeeper(3.4.9),Hazelcast(3.8),Hadoop(2.7.3),Spark(2.1.0)和MQTT(3.1).采用Hadoop进行批处理、Spark进行流处理和微批量处理、ZooKeeper进行应用协调、Hazelcast用于内存存储和中间缓冲区,MQTT用于通信.在所有仿真实验中采用医疗数据集,分别为案例1(14 000行)、案例2(35 000行)和案例3(70 000行).尽管模拟数据集并非大数据,但可以通过动态配置快速地显示评估结果.仿真的工作负载包括数据加载、预处理和仅由映射器模型进行的分析处理.在工作负载的每一阶段,临时数据均被存储在内存存储器中以最小化HDFS的运行开销.

首先,数据拆分大小表示在映射器线程的每次迭代中要处理的数据集行数,如图3所示.

图3 映射器线程迭代中的评估结果

在6个映射器线程中,数据集从6行(每个单线程1行)变化为122 880行(每个单线程20 480行).除了虚拟机使用过程中导致的错误以外,三个案例在数据拆分大小达到7 680行以前的处理时间大致相同.当数据拆分大小超过7 680行时,三个案例的处理时间均迅速上升;其次,根据图3的性能评估结果,所有数据处理方法的仿真结果如图4所示,其中包括流处理、微批量处理和批处理.本文基于BDPS针对患者的血液测试数据建立了一个医疗数据分析方案.分析方案包括数据加载、预处理和分析,这些分析通过微批量处理进行了简单的统计分析.在整个过程中,批处理任务由于可以包含个人信息,因而是在混合云环境的私有云中加以执行的,而流处理和微批量处理则是在公共云中以高性能加以执行.

图4 批处理、流处理、微批量处理的评估结果

图4中数据处理的延迟时间是指当前任务完成后,直到下一个任务完成的时间.此时,下一任务并不等待当前任务的完成,即在当前任务中处理流或微批处理的数据时,就会启动下一个任务.例如,分别有批处理时间、流处理时间和微批量处理时间.批处理时间是指批处理任务完成之前的时间;流处理时间是批处理任务完成后,直到流处理任务完成的时间;微批量处理时间是流处理任务完成后,微批处理任务完成的时间.

在仿真实验结果中,除单个映射器线程外,所有案例下的总处理时间均基本一致,且批处理程序的延迟时间模式与图3的实验结果较为相似.随着批处理程序延迟时间的减少,可以发现流处理程序的延迟时间逐渐增加.当映射器线程数为1时,流处理和批处理任务的完成时间相同,且二者之间没有延迟.由于内存存储I/O中的存储锁和瓶颈的存在,相对较小的数据拆分而言,较大数据拆分(1920行)的流处理任务往往需要更长的延迟时间.

2.3 讨论

为了进一步验证本文提出的工作流模型的有效性,本节还选取了一种基于网络流的工作流模型(Netflow-Based Assignment Judgment,NBAJ)[14]进行比较.NBAJ将资源分配问题中涉及的资源、资源类型以及活动节点等三类元素映射到一个网络流模型上;而BDPS系统仅考虑两个因素,即对应于价值和速度的QoA和截止期限间的最佳权衡,因此涉及到的因素更为集中,实现起来也更为直观便捷.

3 结 论

为了满足用户的分析需求,提出了一种面向用户的BDPS系统和工作流模型.BDPS分析了性能影响因素,并对不同配置设置下的批处理性能进行了评估,从而确定权衡方案并动态地生成工作流.仿真实验表明本文提出的BDPS系统可以为混合云中的医疗大数据分析提供一种有效的数据处理方法.如何将BDPS进一步应用于多种不同用例中将是下一步工作的重点.

猜你喜欢

批处理权衡批量
权衡“轻”“重” 吃透密度
如何权衡阿司匹林预防心血管病的获益与风险
批量提交在配置分发中的应用
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
采用经济数控车床批量车削孔类工件的再实践
不装软件批处理为文件夹加锁
借助批处理 让Cortana变聪明
基于探索与开发权衡的地磁仿生导航搜索方法
表白
在数控车床上批量钻铰孔类工件的实践