浅谈R在大数据中的应用

(整期优先)网络出版时间:2016-12-22
/ 1

浅谈R在大数据中的应用

闵凉宇唐寅

(1.首都经济贸易大学信息学院北京100070)

摘要:随机信息技术的的飞速发展,世界各个角落通过互联网联系的越来越紧密,我们每天的生活工作产生大量的数据,如果我们对这些看似杂乱无章的数据进行统计分析,数据挖掘,我们便可以提取出很有用的信息,R正是在大数据时代背景下处理海量数据的利器之一。可以预见,在大数据时代,分布式系统(例如Hadoop和Spark)和统计分析软件将拥有广阔的应用前景。

关键词:R,数据挖掘,统计分析,Hadoop

1.R概述

R是一个有着统计分析功能和强大的作图功能的语言环境和软件系统,有新西兰奥克兰大学统计系的RossIhaka和RobertGentleman共同创立,R语言在GUN协议下免费发行,该软件系统完全开源,可以自由下载其源代码,也有已经变异的可执行文件版本下载,R语言可在多种平台下运行,包括UNIX,Windows和MacOS。

R语言的开发及维护由R开发核心小组具体负责,这个团队的成员大部分来自大学的统计系,同时R语言还拥有大批贡献者,他们为R语言编写代码,修正程序缺陷和编写文档。

该软件系统最得意之处在于其自带了多种统计学及数字分析功能,并且可以通过安装包增强新的功能,迄今为止,R语言官网上的程序包已经超过了4000个,广泛覆盖了各类行业和领域的数据分析应用,同时,各种统计学前沿的理论方法的形影计算机程序都会迅速以R软件包的形式得以实现。

2.Hadoop简介

随着信息化时代的到来,每天都产生大量的数据,根据相关统计,淘宝网每日新增的交易数据为10TB;eBay分析平台每日处理的数据量达到了100PB;Facebook的10亿活跃用户,每天生成的照片冲洗出来堆起来的高度相当于80个埃菲尔铁塔;Youtube网站每分钟大约会有60h的视频数据上传,根据IDC[]预测,到2020年全球以电子形式存储的数据量将达32ZB,如果将其刻录在DVD盘片后堆叠起来,可以从地球到月球垒几十个来回。

Hadoop是一种可以实现大数据时代云存储和云计算的方案,Hadoop起源于Google。Google公司在2003年和2004年发表了两篇描述Google学术的论文:谷歌文件系统(GFS)和MapReduce。它们提供了一个高效处理极大规模数据平台。

而同期致力于研究开源的网页搜索引擎的Nutch的DougCutting就开始着手实现这些Google系统,不久之后便诞生了Hadoop。其早期以Luence子项目出现,不久之后成为了Apache基金会的顶级开源项目,从本质上来讲,Hadoop是一个实现了MapReduce和GFS技术的开源平台,它可以在由低成本硬件组成的集群上处理大规模的数据集。

3.Hadoop与R的结合

目前有两种比较主流的方法:

第一种是在Hadoop上将PB,TB量级的数据利用MapReduce处理之后,将其数据容量缩小到GB量级,再加载到R中进行处理。

在R中,GB级别的数据可以利用MPI并行处理框架构建的机群计算。Rmpi包相当受欢迎,在它的基础上可以实现各种MPI支持的并行编程范式。其中snow包简单易用,支持协议多样,包括SOCKET、MPI、PVM、NWS等四种线程沟通协议、所以即使没有安装MPI或者对MPI了解不多,最基本的也可以直接使用SOCKET方式快速上手。而有了snowfall,更是使得并行化的计算变得柔和普通编程一样简单。由于这些包都是为R而扩展的,所以跟R的矢量化原因描述出来(比如R的apply系列函数或简单矩阵运算),再一直到snowfall并行运算平台几乎就是0成本。

第二种方法就是直接利用支持Hadoop的R包,在R中操作存放HDFS中的数据,并利用R语言完成MapReduce算法,用来替代Java的MapReduce实现。RHadoop包让R语言有更强大的能力来处理高达TB到PB的数据。

4.结语

将R和Hadoop相结合,既能够利用Hadoop分布式MapReduce计算打破数据量的限制,又能够利用R中的众多优秀的扩展包,快速实现数据处理和分析,这是一种很有前途的解决方案,也是一个不错的大数据实践。

5.参考文献

[1]AnandRajarman,JeffreyDavid.大数据:互联网大规模数据挖掘与分布式处理.2012.

作者简介:

闵凉宇(1991-):首都经济贸易大学信息学院在读研究生。E-mail:mly8410112@163.com[1]IDC:InternetDataCenter,互联网数据中心。