首页 > 新闻 > 国内 >

医疗大数据专家:浅谈医学大数据

2015-03-26 10:06:29   作者:   来源:36氪   评论:0  点击:


  图六

  图五和图六都显示了最流行的平台和数据处理方式为开源免费的 Hadoop 和 MapReduce。伴随着他们的潜在成长和承诺程度,可以预见,Hadoop 和 MapReduce 正在并会继续推动和促进大数据的处理和应用。

  在此,我们简单介绍一下 Hadoop 和 MapReduce 的概念。Hadoop 是一种基于 Java 的分散式数据处理框架。它可以提供对储存在多个硬件设备上的数据进行高吞吐率的读写。更重要的是,它对大数据具有高容错性 和对并行应用程序的高可用性。Hadoop 框架结构由若干名字节点(NameNode)和数据节点(DataNode)组成。一份数以万计,百万计的大数据文件会被分割成更小的文件信息块储存在多个数据节点里,可以是任何计算机硬件设备。

  有关这些文件的数据属性资料信息称作 metadata 则被存储在名字节点里(NameNode)。 NameNode 主要管理文件系统的命名空间和客户端对文件的访问操作记录。Hadoop 的框架结构如图七:

  图七

  当访问和操作数据文件时,客户端会联系名字节点提取文件信息块的属性信息比如位置,文件名等。然后根据这些属性信息,客户端直接从相应的数据节点同时读取数据块。Hadoop 本身具有冗余和复制功能,保证在单个硬件储存设备出现故障时数据仍旧能被恢复而没有任何损失,比如每个数据节点默认拥有3个备份之类。

  此外,在有新数据节点添加到框架中时,Hadoop 还可以自动平衡每个数据节点的数据载有量。同样,名字节点也可以拥有冗余和复制功能,用于在单个储存数据属性信息的名字节点出现故障时可以恢复相应的数据属性信息。

  MapReduce 则是一种可以用来并行处理大数据的编程模型。同一程序在 Hadoop 的框架下可以用各种不同的语言(Java,Ruby,Python 等)按 MapReduce 的编程模型进行编写和运行。其关键就在于三个词: map,reduce, 和并行处理。我们通过一个例子来理解 MapReduce 的大致工作原理。比如我们有一30个字的字符串“开落花缠落花绕缠开绕笑瓜夜村村舍舍瓜夜藤绕下下藤绕嬉嬉笑娃娃”,任务是计算每个字出现的次数。

  最简单的方法是按序读取每一个字建立标识索引并计算出现的次数值存入内存,如果是新字,值为1,如果是出现过的字则次数值累加上去。此种方式是按串行的方式进行的,所花的时间会随着字符串的长度和复杂度程线性增长。当字符串是以万计百万计时,比如基因组数据,所花的时间将是相当惊人的。 并行处理则能节约相当多的时间。

  我们先把原文件分割到几个小文件块,然后对每个小文件块进行字的标识索引和附加数值(这儿不进行累计,只是简单的单次点数),然后再排序重组把相同字放在一起,然后我们再用缩减法计算出字及其相应的出现次数值。图八显示了具体的例子步骤:

  图八

分享到: 收藏

专题