標籤:

R語言和大數據

安裝R語言

R3.3版本會出現各種so不存在的問題,退回去到R3.1版本時候就順利安裝。

在安裝R環境之前,先安裝好中文(如果沒有的話圖表中顯示漢字成框框了)和tcl/tk包(少了這個沒法安裝sqldf)

sudo yum install fonts-chinese tcl tcl-devel tclx tk tk-devel -y

安裝中文字體後重新載入 service xfs reload (不過在有台機器上總是失敗,後來重啟機器OK)

sudo service xfs reload

有些包會需要rgl,調用opengl的庫,所以還要安裝opengl包

sudo yum install mesa-libGLU mesa-libGLU-devel -y

sudo yum install gcc-gfortran gcc gcc-c++ readline-devel libXt-devel -y

wget --no-check-certificate stat.ethz.ch/CRAN/src/b

tar xvf R-3.1.0.tar.gz

./configure --enable-R-shlib=yes --enable-BLAS-shlib=yes --with-lapack --with-libpng --with-x=no --with-tcltk

sudo sh -c "make"

sudo sh -c "make install"

sudo R CMD javareconf JAVA_HOME=$JAVA_HOME

進入到r中進行

install.packages(rJava)

選擇22

安裝DBI

install.packages("DBI")

選擇22

安裝RSQLite

install.packages("RSQLite")

選擇22

配置 odps_config.ini

project_name=myproject

access_id=<這裡輸入Access ID,不帶尖括弧>

access_key=<這裡輸入Access Key,不帶尖括弧>

end_point=service.odps.aliyun-inc.com

驗證

Sys.getenv(RODPS_CONFIG);

最後安裝RODPS包

install.packages(RODPS,repos=http://odps.alibaba.com/rodps)

安裝RStudio

R裝在工作的筆記本電腦上,由於內存的限制,只能用於一些很小的數據集的分析,所以更好的方式是,在Linux上配置一個R加rstudio-server,然後可以通過web直接訪問R的功能。

下載rstudio-server的rpm包安裝即可

wget download2.rstudio.org/r

rpm -ivh --nodeps rstudio-server-0.97.551-x86_64.rpm

啟動命令

坑爹的是啟動失敗並沒有任何錯誤提示,在/var/log/messages找到錯誤信息

安裝時如果提示缺少libR.so;使用make unsintall卸載,然後重新安裝一次R,指定了enable-R-shlib以後就不再報錯。

啟動正常以後ps aux能夠看到/usr/lib/rstudio-server/bin/rserver

就說明已經啟動了

配置文件位於/etc/rstudio/rserver.conf

www-port=80,80是默認的http服務埠號。

rsession-ld-library-path=/opt/local/lib:/opt/local/someapp/lib 指定額外的庫地址

rsession-which-r=/usr/local/bin/R 指定R軟體位置

auth-required-user-group=rstudio_users 限制可登陸R用戶

rsession-memory-limit-mb=4000 限制使用的最大內存

rsession-stack-limit-mb=10 限制最大的棧大小

rsession-process-limit=100 限制最多進程數

session-timeout-minutes=30 進程超時時間

r-libs-user=~/R/packages 設置默認的R包

limit-file-upload-size-mb=100 設置最大的上傳文件大小

r-cran-repos=cran.case.edu/ 設置默認的CRAN

登陸訪問

打開localhost測試地址;

此外,還需要設置環境變數才可以訪問,使用下面命令設置當前session的環境變數

Sys.setenv(RODPS_CONFIG ="odps_config.ini")

library(RODPS_CONFIG)

如下圖

????

最新進展

R還是把數據load到本地進行計算的,這樣的方式在大數據時代多少顯得落伍。目前R和hadoop結合的有rhadoop、rhive、rhbase、sparkr等等,rhive和rodps採用的方法是類似的,用lib結合介面進行訪問。比較徹底的是sparkR,在api和運行時做了修改。使用R或Python的DataFrame API能獲得和Scala近乎相同的性能。

調用MaxCompute數據方面,可以先把語言轉換為SQL腳本在調用。

本來選自阿里雲大數據產品專家「隱林」,擅長MaxCompute、機器學習、分散式、可視化、人工智慧等大數據領域。

推薦閱讀:

用Apache Spark進行大數據處理——第一部分:入門介紹
大數據(big data):基礎概念
G20遐想:馬雲、李彥宏、孫丕恕等大咖們的數據觀
除了對付姜你軍、蒜你狠?!天元數據網農業數據能做的更多
美國現代藝術博物館的軟數據:111件服裝展品的前世今生

TAG:大數據 |