您的位置:首页 > 大数据

如何联合R与Hadoop更好处理大数据!

2016-08-29 11:30 393 查看


 大数据时代,为了满足用R语言处理PB量级数据的需求,聪明的人们发现了一种便捷的方法,即把已有的2种先进技术合二为一——联合R与Hadoop,这样,R便可拥有在分布式文件系统(HDFS)上处理大数据的能力!以下,大圣众包威客平台将提供联合二者的3种方法的具体操作办法。



  一、使用RHadoop——在MapReduce模式下执行R函数

  作为RevolutionAnalytics下的一个开源库,RHadoop与Rhipe的功能相似——也是在MapReduce模式下执行R函数的。例如,想要连接R和HBase,则可以使用rhbase包中的函数,想要一些函数来连接R和分布式文件系统(HDFS),可以选择rdfs包;想要一些让R和Hadoop联合作业的函数,可以考虑rmr包;想在Hadoop中对大数据集进行一些常用的数据整理操作,可以使用plyrmr包;等等。

  以下,将会举出一个使用rmr包中的函数让R与Hadoop联合作业的例子:



  RHadoop需要对R进行一些设置,并且需要Hadoop集群上一些包的支持,而且RHadoop允许开发者在R函数中定义并调用MapReduce函数。这两点上,与马上将要说的第二种方法“使用Rhipe包”是一样的。

  二、使用Rhipe包——允许用户在R中使用MapReduce

  第二种方法是,让Rhipe包允许用户在R中使用MapReduce。值得注意的是,使用此方法,首先R需要被安装在Hadoop集群中的每一个数据节点上,另外,每个节点还要安装ProtocolBuffers,使得Rhipe在每个节点上都可以被使用。如果选择此方法,比较麻烦的是相应的前期准备工作需要先做好。

  以下,将会举出在R中利用Rhipe包应用MapReduce框架的范例:



  三、使用StreamingAPIs——安装和设置均很方便

  这是3种方法中最为简单的一种。StreamingAPI能够将R语言中的函数传入,并在MapReduce模式下运行这些函数,是Hadoop的特点之一。而且,贴心的是,用户并不需要额外开启客户端之类的东西,因为,这些StreamingAPI可以将任意能在MapReduce模式下访问和操作标准I/O接口的R脚本传入Hadoop中。不过,比较麻烦的是,在执行函数方面,StreamingAPIs需要将函数依次map和reduce。

  请看以下例子:



  条条大路通罗马,以上3种方法只是众多方法中比较简单常用的,用户其实也可以使用ApacheHive、ApacheMahout、Segue框架,与其他来自RevolutionAnalytics的商业版R来实现大规模的机器学习。希望以上的教程,能够让你在大数据业务中不断前进。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大数据 it hadoop r语言