如何联合R与Hadoop更好处理大数据!
大數(shù)據(jù)時代,為了滿足用R語言處理PB量級數(shù)據(jù)的需求,聰明的人們發(fā)現(xiàn)了一種便捷的方法,即把已有的2種先進技術(shù)合二為一——聯(lián)合R與Hadoop,這樣,R便可擁有在分布式文件系統(tǒng)(HDFS)上處理大數(shù)據(jù)的能力!以下,大圣眾包威客平臺將提供聯(lián)合二者的3種方法的具體操作辦法。
一、使用RHadoop——在MapReduce模式下執(zhí)行R函數(shù)
作為RevolutionAnalytics下的一個開源庫,RHadoop與Rhipe的功能相似——也是在MapReduce模式下執(zhí)行R函數(shù)的。例如,想要連接R和HBase,則可以使用rhbase包中的函數(shù),想要一些函數(shù)來連接R和分布式文件系統(tǒng)(HDFS),可以選擇rdfs包;想要一些讓R和Hadoop聯(lián)合作業(yè)的函數(shù),可以考慮rmr包;想在Hadoop中對大數(shù)據(jù)集進行一些常用的數(shù)據(jù)整理操作,可以使用plyrmr包;等等。
以下,將會舉出一個使用rmr包中的函數(shù)讓R與Hadoop聯(lián)合作業(yè)的例子:
RHadoop需要對R進行一些設(shè)置,并且需要Hadoop集群上一些包的支持,而且RHadoop允許開發(fā)者在R函數(shù)中定義并調(diào)用MapReduce函數(shù)。這兩點上,與馬上將要說的第二種方法“使用Rhipe包”是一樣的。
二、使用Rhipe包——允許用戶在R中使用MapReduce
第二種方法是,讓Rhipe包允許用戶在R中使用MapReduce。值得注意的是,使用此方法,首先R需要被安裝在Hadoop集群中的每一個數(shù)據(jù)節(jié)點上,另外,每個節(jié)點還要安裝ProtocolBuffers,使得Rhipe在每個節(jié)點上都可以被使用。如果選擇此方法,比較麻煩的是相應的前期準備工作需要先做好。
以下,將會舉出在R中利用Rhipe包應用MapReduce框架的范例:
三、使用StreamingAPIs——安裝和設(shè)置均很方便
這是3種方法中最為簡單的一種。StreamingAPI能夠?qū)語言中的函數(shù)傳入,并在MapReduce模式下運行這些函數(shù),是Hadoop的特點之一。而且,貼心的是,用戶并不需要額外開啟客戶端之類的東西,因為,這些StreamingAPI可以將任意能在MapReduce模式下訪問和操作標準I/O接口的R腳本傳入Hadoop中。不過,比較麻煩的是,在執(zhí)行函數(shù)方面,StreamingAPIs需要將函數(shù)依次map和reduce。
請看以下例子:
條條大路通羅馬,以上3種方法只是眾多方法中比較簡單常用的,用戶其實也可以使用ApacheHive、ApacheMahout、Segue框架,與其他來自RevolutionAnalytics的商業(yè)版R來實現(xiàn)大規(guī)模的機器學習。希望以上的教程,能夠讓你在大數(shù)據(jù)業(yè)務中不斷前進。
總結(jié)
以上是生活随笔為你收集整理的如何联合R与Hadoop更好处理大数据!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 索引效果是否叠加_MySQL
- 下一篇: 数据结构与算法--7.树的基础知识