MapReduce 编程框架在临床大数据分析中的应用:当前的现状和未来趋势外文翻译资料

 2022-12-19 05:12

英语原文共 23 页,剩余内容已隐藏,支付完成后下载完整资料


BioData Mining

文献综述 开放存取

MapReduce 编程框架在临床大数据分析中的应用:当前的现状和未来趋势

Emad A Mohammed1dagger;, Behrouz H Far1dagger; and Christopher Naugler2*dagger;

  • 通信:

Christopher.Naugler@cls.ab.ca

dagger;平等贡献者

2卡尔加里大学病理学和检验医学系和加拿大卡尔加里和卡尔加里实验室服务部完整的作者信息列表可在文章末尾找到

摘要

临床环境中大量数据集的出现为数据存储和分析带来了挑战和机遇。 这种所谓的 “大数据” 挑战了传统的分析工具,并且将越来越需要从其他领域改编的新颖解决方案。 在效率和可扩展性方面,信息和通信技术的进步为大数据分析提供了最可行的解决方案。 至关重要的是,大数据解决方案是多线程的,并且数据访问方法可以精确地适应大量的半结构化 / 非结构化数据。

MapReduce 编程框架使用函数式编程中常见的两个任务:Map 和 Reduce。 MapReduce 是一个新的并行处理框架,Hadoop 是在单个计算节点或集群上的开源实现。 与现有的并行处理范例(例如网格计算和图形处理单元(GPU))相比,MapReduce 和 Hadoop 有两个优点:

1)容错存储通过复制计算任务导致可靠的数据处理,并且在计算集群上的不同计算节点上克隆数据块;

2)通过批处理框架和 Hadoop 分布式文件系统(HDFS)进行高吞吐量数据处理。 数据存储在 HDFS 中,并可供从节点使用以进行计算。

在本文中,我们回顾了 MapReduce 编程框架及其实现平台 Hadoop 在临床大数据和相关医疗健康信息领域的现有应用。 MapReduce 和 Hadoop 在分布式系统上的使用代表了临床大数据处理和利用的重大进步,并在新兴的大数据分析时代开辟了新的机遇。 本文的目的是总结临床大数据分析方面的最新工作,并强调可能需要哪些方法来增强临床大数据分析工具的结果。 本文最后总结了 MapReduce 编程框架和 Hadoop 平台在医疗健康信息学相关领域处理大量临床数据的潜在用途。

关键词: MapReduce,Hadoop,大数据,临床大数据分析,临床数据分析,生物信息学,分布式编程

介绍

大数据是用于描述具有 “4V” 定义的大数据集的术语:体积,变化,速度和值(例如医学图像,电子病历(EMR),生物统计学数据等)。这些数据集存在存储,分析和可视化方面的问题 [1,2]。为了应对这些挑战,已经开发了用于多线程计算任务的新软件编程框架 [2-4]。这些编程框架旨在使其并行性不是来自超级计算机而是来自计算集群:大量商品硬件,包括通过以太网电缆或廉价交换机连接的传统处理器(计算节点)。这些软件编程框架以一种新形式的文件系统开始,称为分布式文件系统(DFS)[3,4],其特点是比传统操作系统中的磁盘块大得多。 DFS 还提供数据或冗余复制,以防止数据分布在潜在的数千个低成本计算节点上时发生的频繁介质故障 [3]。本次审查的目的是总结 MapReduce 在临床大数据处理过程中在 Hadoop 平台上的潜在和不断扩展的使用。次要目标是突出预测性和规范性临床大数据分析的潜在益处。需要这些类型的分析才能更好地使用和优化资源 [5,6]。

不同类型的分析

分析是用于描述处理数据集的各种目标和技术的术语。

有三种类型的分析:

1- 描述性分析:是一个总结调查数据集的过程。 它可能用于生成标准报告,可能有助于解决诸如 “发生了什么? 问题是什么? 需要采取什么行动?

2- 预测分析:遗憾的是,描述性分析并未说明未来,这就是需要预测分析的原因。 预测分析利用历史数据集的统计模型来预测未来。 预测分析有助于回答 “为什么会发生这种情况? 接下来会发生什么?”。 预测能力取决于统计模型的拟合优度 [6]。

3- 惯例:是有助于利用数据模型的不同场景的分析类型(即多变量模拟,检测不同变量之间的隐藏关系)。 回答诸如 “如果使用这种资源利用情况会发生什么?” 这样的问题很有用。 什么是最好的情景?“ 规范分析通常用于优化问题,并且需要复杂的算法来找到最佳解决方案,因此在某些领域(即临床大数据分析)中使用较少。

本文总结了临床大数据分析的工作,这些分析目前完全专注于描述性和预测性分析。 接下来讨论利用临床大数据获取分析优势,并强调规范分析对这些类型分析可能产生的潜在应用的潜在重要性。 (参见临床大数据和即将到来的挑战部分)。

高性能计算(HPC)系统

分布式系统

分布式系统 [3] 是一种设置,其中几个独立的计算机(计算节点)参与解决处理大量和各种结构化 / 半结构化 / 非结构化数据的问题。distributed system [3]。

网格计算系统

网格计算系统 [7] 是一种利用资源(例如 CPU,跨全球网络的计算机系统存储等)的方式,用作可按需使用的灵活,普及且廉价的可访问计算资源池。 通过任何任务。

图形处理单元(GPU)

GPU 计算 [8] 非常适合面向吞吐量的工作负载问题,这是大规模数据处理的特征。 并行数据处理可以由 GPU 集群处理 [9]。 但是,在 GPU 集群上实现 MapReduce 有一些局限性 [10]。 例如,GPU 难以通过网络进行通信。 此外,GPU 无法处理资源的虚拟化。 此外,GPU 的系统架构可能不适合 MapReduce 架构,可能需要进行大量修改 [9]。

网格计算和分布式计算系统之间的基本区别是:

  1. 分布式计算系统管理数百或数千个计算机系统,这些计算机系统在处理资源(例如,存储器,CPU,存储等)方面受到限制。 然而,网格计算系统关注具有最佳工作负载管理服务器,网络,存储等的异构系统的有效使用。
  2. 网格计算系统专用于支持跨各种管理域的计算,这使其与传统的分布式计算系统不同。

分布式文件系统

大多数计算是在单个处理器上完成的,具有主内存,缓存和本地磁盘(计算节点)。在过去,需要并行处理的应用程序,例如大型科学计算,是在具有许多处理器和专用硬件的专用并行计算机上完成的 [2,3]。然而,大规模 Web 服务的普及导致在具有数千个计算节点或多或少独立运行的安装上进行更多计算 [3,4]。在这些安装中,计算节点是商用硬件,与专用并行机相比,大大降低了成本 [3]。这些新的计算设施已经产生了新一代的编程框架。这些框架利用了并行的强大功能,同时避免了当计算硬件由数千个独立组件组成时出现的可靠性问题,其中任何组件都可能随时出现故障 [2]。图 1 显示了一个 Hadoop 集群及其分布式计算节点和连接以太网交换机。集群运行由主节点控制的作业,称为 NameNode,它负责分块数据,克隆数据,将数据发送到分布式计算节点(DataNodes),监视集群状态,以及收集 / 聚合结果。图 1 所示的集群目前安装在加拿大阿尔伯塔省卡尔加里卡尔加里大学病理学和实验室医学系和卡尔加里实验室服务中心(CLS)。

MapReduce 编程框架

在 DFS 之上,已经开发了许多不同的高级编程框架。 最常用的编程框架是 MapReduce 框架 [4,11,12]。 MapReduce 是 Google 提出的数据密集型应用程序的新兴编程框架。 MapReduce 借鉴了函数式编程的思想 [12],程序员定义了 Map 和 Reduce 任务来处理大量的分布式数据。

MapReduce [11] 的实现使大规模数据上的许多最常见的计算能够有效地在计算集群上执行,并且能够容忍计算过程中的硬件故障。 但 MapReduce 不适合在线交易 [11,12]。

MapReduce 编程框架的主要优势在于高度的并行性,以及编程框架的简单性及其对各种应用程序域的适用性 [4,11]。这需要将工作负载分配到大量计算机上。并行度取决于输入数据大小。 map 函数处理返回一些其他中间对(key2,value2)的输入对(key1,value1)。然后根据其密钥将中间对分组在一起。 reduce 函数将输出一些新的键值对(key3,value3)。图 2 显示了用于计算文件中单词的 MapReduce 算法的示例。在该示例中,映射输入键是提供的值为 1 的数据块。映射输出键是单词本身,并且每当该单词存在于处理的数据块中时值为 1。 reducer 执行从映射输出的键值对的聚合,并为每个键输出单个值,在这种情况下,它是永久字的计数。图 2 提供了在 WordCount MapReduce 程序的处理阶段期间生成的键值对的生成的进一步说明。

图1 Hadoop集群的体系结构。

图2 wordcount问题mapreduce算法工作流

通过将处理分解为可以在集群中可能数百或数千个节点上并行运行的小工作单元来实现高性能。 以这种功能样式编写的程序会自动并行化并在大型商用机器上执行。 这使得没有任何并行和分布式系统经验的程序员可以轻松利用大型分布式系统的资源 [3,4]。

MapReduce 程序通常用 Java 编写; 但是它们也可以用 C ,Perl,Python,Ruby,R 等语言编写。这些程序可以处理存储在不同文件和数据库系统中的数据。

hadoop 平台

Hadoop [13-15] 是 MapReduce 框架的开源软件实现,用于在 Apache 的商用硬件构建的大型集群上运行应用程序 [16]。 Hadoop 是一个提供分布式存储和计算功能的平台。 Hadoop 首先被理解为修复 Nutch [15,17] 中存在的可扩展性问题,Nutch [15,17] 是一个开源爬虫和搜索引擎,它利用 Google 开发的 MapReduce 和 big-table [17] 方法。 Hadoop 是一种分布式主从架构,由用于存储的 Hadoop 分布式文件系统(HDFS)和用于计算功能的 MapReduce 编程框架组成。 HDFS 将数据存储在计算节点上,在集群中提供非常高的聚合带宽。.

Hadoop 固有的特征是大数据集的数据分区和并行计算。 它的存储和计算能力随着计算节点添加到 Hadoop 集群而扩展,并且可以在具有数千个节点的集群上达到 PB 级的卷大小。

Hadoop 还提供了 Hive [18,19] 和 Pig Latin [20],它们是生成 MapReduce 程序的高级语言。 一些供应商提供开源和商业支持的 Hadoop 发行版; 例子包括 Cloudera [21],DataStax [22],Hortonworks [23] 和 MapR [24]。 许多这些供应商已经在 Hadoop 开源平台上添加了自己的扩展和修改。

Hadoop 在其数据哲学方面不同于其他分布式系统方案。 传统的分布式系统需要在客户端和服务器之间重复传输数据 [3]。 这适用于计算密集型工作,但对于数据密集型处理,数据大小变得太大而无法轻松移动。 Hadoop 专注于将代码转移到数据而不是反之亦然 [13,14]。 客户端(NameNode)仅发送要执行的 MapReduce 程序,这些程序通常很小(通常以千字节为单位)。 更重要的是,移动代码到数据的理念适用于 Hadoop 集群本身。 数据在集群中被分解和分布,并且尽可能地对一块数据的计算发生在该数据块所在的同一台机器上。

图 3 显示了 Hadoop 生态系统,相关技术以及市场中现有的当前分布。 表 1 显示了 14 个 Hadoop 发行版的基本功能 [25],表 2 显示了在 Hadoop 之上使用的相关 Hadoop 项目 / 生态系统,以便为 MapReduce 框架提供我的功能。

图3 Hadoop生态系统

表1 14个Hadoop发行版的基本特性及相关下载链接

本文引用的与“MapReduce、Hadoop、临床数据以及MapReduce的生物医学/生物信息学应用”相关的文献来自PubMed、IEeExplore、Springer和生物医学中心数据库。 这里的 MapReduce

编程框架于 2006 年首次引入工业。因此文献检索集中在 2007 年至 2014 年。基于使用 MapReduce 框架处理临床大数据及其使用 Hadoop 平台的应用,共发现 32 篇文章。

评论

在这篇综述中,我们首先列出了不同类型的大型临床数据集,然后是为利用数据获得分析优势而开发的工作。 这些优势主要集中在描述性和预测性分析上。 在审查过的工作中使用

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[19914],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。