2014-01-10 147 views
2

我有一個非常初學者的問題。我剛剛閱讀了一些關於亞馬遜EMR的文檔。在我註冊之前,我只想問一下在其中使用R。亞馬遜EMR:在亞馬遜EMR中使用R代碼

我有一個R模塊調用其他幾個模塊,然後就在它運行完成之前將多個變量保存爲.txt文件。

我最基本的問題是,我可以在亞馬遜的EMR中執行此操作嗎?我將能夠訪問.txt輸出文件嗎?最後,我的R腳本從Excel電子表格中讀取一些數據。如果我將Excel文件上傳到系統中,它是否仍能夠從EMR執行此操作?

感謝

邁克

+0

目前還不清楚emr如何與R腳本啓動相關?你知道hadoop是什麼以及map-reduce模式的工作原理嗎? – alko

+0

@alko,我只知道我最近讀了什麼。我的理解是,Hadoop和map-reduce模式傳播了幾臺計算機的計算能力(即將進程映射到多臺計算機),然後最終將結果彙總到一個系統(即減少它)。它是否正確?從那裏,我查看了Amazon EMR系統,這似乎表明可以使用流式集羣進程運行R腳本。它是否正確?感謝alko! – Mike

+0

「MapReduce with R on Hadoop和Amazon EMR」 - http://www.joyofdata.de/blog/mapreduce-r-hadoop-amazon-emr/ – Raffael

回答

2

@Mike,解答你的3個問題下面

  • EMR上運行R:當然可以。 一旦您在EMR實例上安裝了R,您就可以在EMR上運行R程序。如果你打算使用多實例集羣,我假設你會編寫MapReduce moules。如果你的程序只是一個「簡單的」R程序,那麼你可能只需要使用一個可調整的實例。我寧願使用R AMI的EC2實例(尋找Louis Aslett)。

  • 移動輸出文件: 是的,你可以。可以將您的程序輸出從EMR傳輸到您選擇的S3存儲桶。您將不得不添加一個調用S3DistCp命令來移動文件的步驟。從我的項目的例子 -

    --jar /home/hadoop/lib/emr-s3distcp-1.0.jar --args '--src,hdfs:///contents,--dest,s3://<bucket-name>/' 
    
  • 閱讀電子表格:據我所知,如果你能做到這一點對本地安裝的R,那麼你也應該能夠做到這一點的EMR。您必須確保在引導過程中安裝了必要的軟件包/庫。

我能夠在一個EMR實例安裝squeezy-CRAN和rmr2與他們所有的依賴關係(RCPP,reshap2,消化,RJSONIO,功能等)。我仍然無法將R程序作爲一個步驟。我不得不使用SSH會話並在shell提示符下運行R CMD命令。在Windows上,putty.exe適合我。

+1

已預安裝,對於S3無需進一步措施 - S3已集成與默認的EMR。 – Raffael