实现R与Hadoop联合作业的三种方法

大数据 Hadoop
实现R与Hadoop的联合作业,R就拥有了在分布式文件系统(HDFS)上处理大数据的能力。本文的目的就是阐述实现二者联合作业的不同技术。但同时,这几种方法也各有利弊。

为了满足用R语言处理pb量级数据的需求,我们需要把它和Hadoop联合起来使用。本文的目的就是阐述实现二者联合作业的不同技术。

[[167283]]

方法一:利用Streaming APIs

Hadoop支持一些 Streaming API来将R语言中的函数传入,并在MapReduce模式下运行这些函数。这些Streaming API可以将任意能在map-reduce模式下访问和操作标准I/O接口的R脚本传入Hadoop中。因此,你不需要额外开启一些客户端之类的东西。如下是一个例子:

方法二:使用Rhipe包

Rhipe包允许用户在R中使用MapReduce。在使用这一方法前,要做相应的前期准备工作。R需要被安装在Hadoop集群中的每一个数据节点上,此外每个节点还要安装Protocol Buffers(更多资料请参考 http://wiki.apache.org/hadoop/ProtocolBuffers),Rhipe也需要在每个节点上都可以被使用。

下面是在R中利用Rhipe应用MapReduce框架的范例:

方法三:使用RHadoop

RHadoop是Recolution Analytics下的一个开源库,与Rhipe类似,它的功能也是在MapReduce模式下执行R函数。后续列举的都是该库中的一些包。plyrmr 包可以在Hadoop中对大数据集进行一些常用的数据整理操作。rmr包提供了一些让R和Hadoop联合作业的函数。rdfs包提供了一些函数来连接R 和分布式文件系统(HDFS)。rhbase包中的函数则能连接R和HBase。

下面这个例子中,我们会演示如何使用rmr包中的一些函数来让R与Hadoop联合作业。

方法总结

总的说来,上述三种方法都能很容易地实现R与Hadoop的联合作业,这样一来R就拥有了在分布式文件系统(HDFS)上处理大数据的能力。但同时,这三种方法也各有利弊。

关键结论:

1、使用Streaming APIs最为简单,它的安装和设置都很方便。Rhipe和RHadoop都需要对R进行一些设置,并且也需要Hadoop集群上一些包的支持。但在执行函数方面,Streaming APIs 需要将函数依次map和reduce,而Rhipe和RHadoop允许开发者在R函数中定义并调用MapReduce函数。

2、与Rhipe和RHadoop不同,使用Streamings APIs也不需要客户端。

3、除此之外,我们也可以使用Apache Mahout,Apache Hive,Segue框架与其他来自Revolution Analytics的商业版R来实现大规模机器学习。

责任编辑:Ophira 来源: 36大数据
相关推荐

2021-07-13 12:31:27

IT组织改进首席技术官

2013-01-04 15:47:54

Android开发平铺UI设计

2009-07-08 12:56:32

编写Servlet

2010-09-14 15:10:49

CSS注释

2009-12-11 18:49:39

预算编制博科资讯

2022-07-13 16:06:16

Python参数代码

2024-11-15 07:00:00

Python发送邮件

2011-04-18 15:32:45

游戏测试测试方法软件测试

2023-08-14 17:58:13

RequestHTTP请求

2010-08-26 16:19:41

DIV圆角

2009-06-23 10:45:18

Hibernate支持

2011-06-10 10:43:12

Ubuntu应用安装

2015-12-11 09:24:38

加密数据Linux

2010-09-06 10:04:31

CSS样式表

2016-09-30 01:10:12

R语言聚类方法

2022-09-13 10:58:55

物联网IoT

2015-12-30 09:58:49

Docker Comp容器

2023-05-16 16:07:07

大数据数据管理工具

2021-09-10 18:09:42

SQL注入漏洞网络攻击

2010-10-20 13:52:07

SQL Server数
点赞
收藏

51CTO技术栈公众号