如何联合R与Hadoop更好处理大数据!
2016-08-29 11:30
393 查看
一、使用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来实现大规模的机器学习。希望以上的教程,能够让你在大数据业务中不断前进。
相关文章推荐
- 如何更好处理数据仓库服务必然需要云数据库HybridDBforPostgreSQL
- 开源力量公开课第二十四期 - 为何Hadoop是分布式大数据处理的未来&如何掌握Hadoop?
- 处理数据时,hadoop如何找最近的数据节点呢?
- 如何更好处理数据仓库服务必然需要云数据库HybridDBforPostgreSQL
- 如何更好处理数据仓库服务必然需要云数据库HybridDBforPostgreSQL
- 如何处理串口通讯数据重合与分批到达的问题 2
- 如何在.NET中处理WMI数据
- 如何更好的处理异常
- UPDATE 时, 如何避免数据定位处理被阻塞
- eval()用法 vb的数据以字符串传递给JS,如何处理(1)
- UPDATE 时, 如何避免数据定位处理被阻塞
- 如何处理几十万条并发数据?
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- UPDATE 时, 如何避免数据定位处理被阻塞
- 如何使用CA/400批处理的方式传输数据
- 有多个字段组成的联合主键,如何判断数据是否重复?
- eval()用法 vb的数据以字符串传递给JS,如何处理(2)
- 如何处理控件所包含的数据的操作细节
- 如何处理串口通讯数据重合与分批到达的问题