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

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

方法一:利用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来实现大规模机器学习。

本文作者:雪晴数据网

来源:51CTO

时间: 2024-09-20 00:12:23

实现R与Hadoop联合作业的三种方法的相关文章

更改IE收藏夹地址位置的三种方法

更改IE收藏夹地址位置的三种方法: 方法一:收藏夹默认的路径是"C:WindowsFavorites".大家在重装系统时都要事先备份,方法是把这个文件夹拷贝出来,重装系统后再覆盖回去就可以.但很多朋友经常会忘记,结果辛辛苦苦所收藏的精选网址全都没了,真是痛苦万分. 现在如果把收藏夹的路径设到别的盘,如"E:Favorites",就再也不用担心重装系统时而忘了备份的烦恼了.你也想试试吗?步骤如下: 1.把收藏夹"C:WindowsFavorites"

win8.1系统快速启动任务管理器的三种方法

win8.1系统快速启动任务管理器的三种方法   1.鼠标移到屏幕右下角,在弹出的charmbar上点击"搜索",输入"系统",在搜索结果里点击"任务管理器",进而对启动项进行管理. 2.按"Win+R"组合键,在弹出的运行对话框里输入"msconfig",这样就能进入系统配置,既可以修改启动项和还能够管理系统服务. 3.按"Ctrl+Alt+Del"组合键直接呼出"任务管理器

php发送post请求的三种方法

 这篇文章主要介绍了php发送post请求的三种方法,分别使用curl.file_get_content.fsocket来实现post提交数据,需要的朋友可以参考下  代码如下: class Request{       public static function post($url, $post_data = '', $timeout = 5){//curl           $ch = curl_init();           curl_setopt ($ch, CURLOPT_UR

php去除换行(回车换行)的三种方法

 这篇文章主要介绍了php去除换行(回车换行)的三种方法,需要的朋友可以参考下  代码如下: <?php     //php 不同系统的换行   //不同系统之间换行的实现是不一样的   //linux 与unix中用 n   //MAC 用 r   //window 为了体现与linux不同 则是 rn   //所以在不同平台上 实现方法就不一样   //php 有三种方法来解决     //1.使用str_replace 来替换换行   $str = str_replace(array(&quo

PHP把网页保存为word文件的三种方法

 最近工作遇到关于生成word的问题,现在总结一下生成word的三种方法的相关资料,需要的朋友可以参考下 一.PHP生成word的两种思路或原理   1.利用windows下面的 com组件 2.利用PHP将内容写入doc文件之中 具体实现方法如下.   二.利用windows下面的com组件   原理:com作为PHP的一个扩展类,安装过office的服务器会自动调用word.application的com,可以自动生成文档,PHP官方文档手册:http://www.php.net/manua

Win8.1计算器快速打开的三种方法

  win8系统是颠覆性最强的一款系统,最原始的开始菜单不见了,里面很多用户经常使用的小工具也随之消失,也许隐藏在电脑里的某个角落了,但是我们一时难以找到,比如说计算机功能.计算机是我们平时经常使用的工具,我们一直都是在开始菜单里查找的,如今连开始菜单都没有了,让win8用户真是不习惯啊,下面小编教大家三种方法,可以快速找回计算机功能,赶快学起来吧! 方法一:通过原始路径快速打开 在Win8.1任何界面,使用 Win + R 组合快捷键,然后输入计算器的原始路径"C:WindowsSystem3

打开Win8本地安全策略的三种方法

  第一种方法 1.如果大家在自己的win8系统控制面板界面中没有找到这个本地安全策略选项的话,可以试着打开win8系统的搜索窗口,然后直接在其中输入本地安全策略,在搜索的结果中就可以单击打开这个功能了. 第二种方法 2.返回到win8系统的传统桌面,之后,同时按下键盘上的win+R快捷键打开电脑的运行窗口,在打开的运行窗口中,输入%windir%system32secpol.msc /s并单击回车,这样,就可以直接打开win8系统的本地安全策略了. 第三种方法 3.就是在运行窗口中输入gped

C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP)

原文:C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP) 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大家共同学习学习.通过.Net FrameWork 2.0下提供的"System.Net.Mail"可以轻松的实现,本文列举了3种途径来发送:1.通过Localhost:2.通过普通SMTP;3.通过SSL的SMT

解析PHP生成静态html文件的三种方法_php技巧

本文将介绍Php 生成静态html文件的三种方法 .1,下面使用模版的一个方法! 复制代码 代码如下: <?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); if ($fwrite ($fp2,$f