1、首先安裝依賴包(各個節點都要安裝)
[root@Hadoop-NN-01 ~]$ yum install gcc-gfortran #否則報”configure: error: No F77 compiler found”錯誤 [root@Hadoop-NN-01 ~]$ yum install gcc gcc-c++ #否則報”configure: error: C++ preprocessor “/lib/cpp” fails sanity check”錯誤 [root@Hadoop-NN-01 ~]$ yum install readline-devel #否則報”–with-readline=yes (default) and headers/libs are not available”錯誤 [root@Hadoop-NN-01 ~]$ yum install libXt-devel #否則報”configure: error: –with-x=yes (default) and X11 headers/libs are not available”錯誤
2、下載RHadoop相關軟體包
R-3.2.5.tar.gz #https://cran.rstudio.com/src/base/R-3/ rmr-3.3.1 #https://github.com/RevolutionAnalytics/rmr2 rhdfs-1.0.8 rhbase-1.2.1 #以上軟體下載地址:https://github.com/RevolutionAnalytics/RHadoop/wiki/Downloads rJava reshape2 Rcpp iterators itertools digest RJSONIO functional bitops stringr plyr caTools Rserve #以上軟體下載地址:http://cran.at.r-project.org/src/contrib/Archive/
Cairo #Linux下R的繪圖軟體:http://www.rforge.net/Cairo/files/ RStudio #https://www.rstudio.com/products/rstudio/download/ Thrift #https://thrift.apache.org/
3、安裝R語言(各個節點都要安裝)
[root@Hadoop-NN-01 mysofts]# tar zxf /mnt/mydisk/soft/R/R-3.2.5.tar.gz [root@Hadoop-NN-01 mysofts]# cd R-3.2.5 [root@Hadoop-NN-01 R-3.2.5]# ./configure --prefix=/usr/local --disable-nls --enable-R-shlib #兩個選項--disable-nls --enable-R-shlib是為RHive的安裝座準備,如果不安裝RHive可以省去。 [root@Hadoop-NN-01 R-3.2.5]# make [root@Hadoop-NN-01 R-3.2.5]# make install
其中readline-devel、libXt-devel在編譯R的時候需要,而--enable-R-shlib是安裝R的共享庫,在安裝Rstudio需要。
4、確認Java環境變數
RHadoop依賴於rJava包,安裝rJava前確認已經配置了Java環境變數,然後進行R對jvm建立連線。
root@Hadoop-NN-01 ~]# R CMD javareconf
5、安裝相關的依賴包,確保RHadoop軟體包能正常使用
[root@Hadoop-NN-01 ~]# R > install.packages("rJava") > install.packages("reshape2") > install.packages("Rcpp") > install.packages("iterators") > install.packages("itertools") > install.packages("digest") > install.packages("RJSONIO") > install.packages("functional") > install.packages("bitops") > quit()
或者使用軟體包安裝:
[root@Hadoop-NN-01 mysofts]# R CMD INSTALL rJava_0.9-8.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL Rcpp_0.12.3.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL plyr_1.8.1.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL stringr_0.6.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL reshape2_1.4.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL iterators_1.0.7.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL itertools_0.1-1.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL digest_0.6.8.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL RJSONIO_1.2-0.2.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL functional_0.4.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL bitops_1.0-5.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL caTools_1.17.tar.gz
[root@Hadoop-NN-01 mysofts]# R CMD INSTALL Cairo_1.5-9.tar.gz
6、安裝RHadoop軟體包
首先將下面的變數加入到環境變數中:
[root@Hadoop-NN-01 ~]# vi /etc/profile export HADOOP_CMD=/home/hadoopuser/hadoop-2.6.0-cdh5.6.0/bin/hadoop export HADOOP_STREAMING=/home/hadoopuser/hadoop-2.6.0-cdh5.6.0/share/hadoop/tools/lib/hadoop-streaming-2.6.0-cdh5.6.0.jar [root@Hadoop-NN-01 ~]# source /etc/profile #儲存生效
安裝
[root@Hadoop-NN-01 mysofts]# R CMD INSTALL rhdfs_1.0.8.tar.gz [root@Hadoop-NN-01 mysofts]# R CMD INSTALL rmr2_3.3.0.tar.gz #各個節點都要安裝
7、使用RHadoop軟體包
[root@Hadoop-NN-01 ~]# R > library(rhdfs) > hdfs.init() > hdfs.ls("/")
如出現警告:
> hdfs.init() 16/05/10 10:58:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
需要在/etc/profile中設定環境變數JAVA_LIBRARY_PATH:
export JAVA_LIBRARY_PATH=/home/hadoopuser/hadoop-2.6.0-cdh5.6.0/lib/native
再將native下面的libhadoop.so.0 及 libhadoop.so.1.0.0複製到 /usr/lib64下面:
[root@Hadoop-NN-01 ~]# cp /home/hadoopuser/hadoop-2.6.0-cdh5.6.0/lib/native/libhadoop.so /usr/lib64/ [root@Hadoop-NN-01 ~]# cp /home/hadoopuser/hadoop-2.6.0-cdh5.6.0/lib/native/libhadoop.so.1.0.0 /usr/lib64/
8、安裝Rstudio Server
下載地址:https://www.rstudio.com/products/rstudio/download-server/
[root@Hadoop-NN-01 mysofts]$ wget https://download2.rstudio.org/rstudio-server-rhel-0.99.902-x86_64.rpm #下載 [root@Hadoop-NN-01 mysofts]$ sudo yum install --nogpgcheck rstudio-server-rhel-0.99.902-x86_64.rpm #安裝 [root@Hadoop-NN-01 mysofts]$ rstudio-server start #啟動
報錯:Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
解決方案:
sudo dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl
rstudio-server預設埠:8787
windows下訪問:http://server-ip:8787
輸入使用者名稱、密碼即可使用。
使用文件:https://support.rstudio.com/hc/en-us/articles/200552306-Getting-Started
配置RStudio Server(略)
9、Linux下執行R指令碼
構建test.r指令碼:
#!/usr/bin/Rscript a<-c(1:20) b<-rep(c(1:4),5) c<-a/b data<-data.frame(a,b,c) write.table(data, file="/root/r_test", row.names=FALSE)
執行:
[root@Hadoop-NN-01 ~]# Rscript test.r
10、TIPS
A:R相關的軟體包安裝在/usr/local/lib64/R/library下,可以在該目錄下檢視是否已經安裝了相應的軟體包。
B:如果安裝的時候不是用root身份安裝,則R安裝的軟體包會在使用者目錄上,其他使用者將使用不了軟體包。
C:在安裝rhbase軟體需要安裝thrift,在後面章節介紹。