MapReduce将会成为服务器的新朋友

在未来,当管理员搭建服务器的时候,他很可能会给服务器集群、数据库、中间件软件装上MapReduce。

加州大学圣地亚哥分校研究员Dionysios Logothetis在日前举行的Usenix年度会议上表示,MapReduce可以在服务器上直接被用来分析日志数据,无需在各个集群上单独分析,也可以大幅缩短分析数据的时间。

MapReduce结构

利用该方法,“数据分析可以从专业集群上转移到日志服务器上,从而避免昂贵的数据迁移成本支出”,Logothetis表示。MapReduce首先是由谷歌公司推出来的,它越来越多地被用来分析跨服务器和节点的大规模数据。目前,它主要担当Hadoop数据处理平台的一个组成部分。

虽然MapReduce大部分都使用在专业集群上,但研究人士表示分析软件的框架版本也可以成为网络服务器的一部分。当前商业网页关于用户的详细日志信息,可以为广告定位、网站安全监控和调试提供数据支持。

根据统计,为繁忙的电子商务网站提供服务的单个服务器,在每秒钟时间内能生成1MB至10MB有价值的日志数据。而在一天之内,它可以生成几十兆兆字节有价值的数据量。平均而言,1000台这样的服务器在一天之内能生成86TB容量的数据信息。比如著名的社交网站Facebook一天所产生的数据量为100TB。

通常来说,大型公司比如Facebook这样的站点都会收集不同服务器上的数据,然后载入到Hadoop集群并使用 MapReduce分析其结果。

MapReduce实例

以往“先存储后查询”的方法具有诸多弊端。传输不同服务器上的数据会耗费大量的带宽资源,对网络构成巨大压力。在进行数据分析之前,Facebook会丢弃80%的日志数据。通过使用这种新技术,这些数据就无需再进行传输了,更不会发生数据丢失的严重问题。

MapReduce在未来的服务器上可能将会成为一种标准配备,它将对数据进行分析并将分析后的结果传达给中央数据采集点。研究人士将这一方法称之为“in-situ MapReduce (iMR)”。

iMR旨在补充而不是取代传统的集群架构,它是为了完成分布式存储系统中的日志数据和其他数据后续分析。作为一项程序,iMR能复制所有的MapReduce APIs,并执行MapReduce相类似的功能、对过滤的数据进行命名并汇集分析结果 。不同之处在于,它能基于最新数据的基础上持续进行分析。

目前,研究员已经创建了一个iMR原型,通过iMR用户可以指定需要分析处理的数据范围,比如过去60秒钟收集的所有信息。此外,用户还可以设定多久提交一次分析结果并进行传送,比如可以指定每15秒钟分析一次等。

Logothetis表示,网络服务器可能花费绝大多数资源在他们本应进行的工作上,被称为给用户提供服务。但是iMR可以利用剩下的循环处理日志数据。

据悉,研究员为此专门制定了一个计划以建立处理速度和结果完整性之间的平衡,如果需要更快地获得结果,那么每个服务器可以忽略掉一些很耗费时间的数据,从何得到一个不那么完全,但仍是有意义的结果。而如果想得到一个全面的分析,则需要很长的时间和很大的服务器资源去完成。

当然,一个只运行少量服务器的组织可能不会从iMR中受益。但是大的运营商,例如搜索引擎,社交网络和电子商务网站将会体验到iMR的价值。