CentOS7.0离线安装RHadoop
近期,由于工作需要,在原有的Hadoop2.6.0環境上安裝了RHadoop,主要借鑒了——RHadoop實踐系列文章和RHadoop安裝,區別之處在于離線安裝較新版本的R-3.2.3、rhdfs_1.0.8和rmr2_3.3.1,并解決參考鏈接安裝過程中的一些疑問。
安裝環境:CentOS-7.0-1460-x86_64、Hadoop-2.6.0、Java Version "1.7.0_79"
節點名稱:nameNode1、nameNode2、ResourceManager、dataNode1、dataNode2、dataNode2。
其中nameNode1(nameNode2隨意)需要安裝:R、rhdfs、rmr2。計算節點dataNode1、2、3需要安裝:R、rmr2。安裝時為了方便,直接將nameNode1上安裝好的直接scp到dataNode節點上了,rhbase暫未使用。下圖是RHadoop Package安裝位置的官方說明,紅字是對本文測試的說明。
 
1.安裝包準備:
https://www.r-project.org/?——?R-3.2.3.tar.gz。
https://github.com/RevolutionAnalytics/RHadoop/wiki/Downloads ——?rhdfs_1.0.8.tar.gz、rmr2_3.3.1.tar.gz。
如果系統環境不全的話,還需要配置yum本地源,安裝gcc以及下面兩個R語言編譯時需要用到的庫(下兩行源自開頭提到的RHadoop安裝)。
#yum install readline-devel ? ?#否則報”–with-readline=yes (default) and headers/libs are not available”錯誤
#yum install libXt-devel ? ? ? ? ?#否則報”configure: error: –with-x=yes (default) and X11 headers/libs are not available”錯誤
2.R語言安裝:nameNode1節點,用戶hadoop (非root用戶)
$ tar -xzvf /home/hadoop/R-3.2.3.tar.gz
$ cd /home/hadoop/R-3.2.3
$ ./configure // 遇到error則根據提示安裝依賴庫。?若有需要安裝RStudio則使用 ./configure --enable-R-shlib?
$ make // make安裝時沒遇到什么問題
$ make install //?cannot stat 'NEWS.rds': No such file or directory?遇到此問題忽略即可
3.添加環境變量:(root用戶)
# vi /etc/profile
1.是Java環境,2.是Hadoop環境
 
在文件末尾添加3.的三個環境變量,其中HADOOP_CMD和HADOOP_STREAMING兩個是RHadoop環境需要,Path中添加的是R語言環境。
保存退出
# source /etc/profile? // 使其生效
$ R? //?退回hadoop用戶,鍵入R即可看到
 
4.RHadoop依賴包以及rhdfs_1.0.8.tar.gz、rmr2_3.3.1.tar.gz安裝:
R語言安裝R package的2種方法?—— 離線安裝各依賴包,依賴包下載:http://mirror.bjtu.edu.cn/cran/?包很多,Ctrl+F按名稱搜索下載即可。
 
?(hadoop用戶下)?安裝成功均結束于Done,否則會提示缺少依賴包
$ R CMD INSTALL rJava_0.9-8.tar.gz
$?R CMD INSTALL?Rcpp_0.12.5.tar.gz
 
$?R CMD INSTALL magrittr_1.5.tar.gz ——>?$?R CMD INSTALL??plyr_1.8.3.tar.gz ——>?$?R CMD INSTALL?stringi_1.1.1.tar.gz
 
離線安裝stringi時,由于死活需要下載一個icudt55l.zip的一個文件,無奈只能手動下載解壓得到icudt55l.dat的文件,
經摸索,需要在安裝時快速放到/home/hadoop/R-3.2.3/library/stringi/libs目錄下,最終安裝成功。只有安裝完stringi才能安裝stringr。
$?R CMD INSTALL?stringr_1.0.0.tar.gz
 
$?R CMD INSTALL?reshape2_1.4.1.tar.gz
 
$?R CMD INSTALL?iterators_1.0.8.tar.gz
 
$?R CMD INSTALL?itertools_0.1-3.tar.gz
 
$?R CMD INSTALL?digest_0.6.9.tar.gz
 
$?R CMD INSTALL?RJSONIO_1.3-0.tar.gz
 
$?R CMD INSTALL?functional_0.6.tar.gz
 
$?R CMD INSTALL?bitops_1.0-6.tar.gz
 
$?R CMD INSTALL?caTools_1.17.1.tar.gz // 這個包可能是因為版本更新,也需要依賴上,否則后續加載庫的時候會報錯
 
安裝完這些依賴就可以安裝rhdfs_1.0.8.tar.gz和rmr2_3.3.1.tar.gz
$?R CMD INSTALL?rhdfs_1.0.8.tar.gz
 
$?R CMD INSTALL?rmr2_3.3.1.tar.gz
 
至此,運行R Client的節點安裝完成。最后,需要將R-3.2.3文件夾復制到三個dataNode中,/etc/profile文件也需覆蓋dataNode中的文件并使其生效。Hadoop集群無需重啟
5.RHadoop程序用例測試及錯誤解決:
$ R // 進入RClient,通過.packages(all.available=T)命令可以查看安裝的所有R包
 
然后依次輸入library(fhdfs)、hdfs.init()、library(rmr2)就可以開始使用RHadoop寫R語言的mapreduce。
截圖中的Warning message忽略即可。
 
>?small.ints = to.dfs(1:20)
> mapreduce(input = small.ints, map = function(k, v) cbind(v, v^2))
 
上述兩行R命令敲完,就會調用MapReduce,可以看到執行進度,并通過from.dfs命令查詢到如下結果:
> from.dfs("/tmp/file…………")?
 
本文測試時遇到的問題:
java.io.IOException: Cannot run program "Rscript": java.io.IOException: error=2, No such file or directory
解決方法:從R的安裝目錄/home/hadoop/R-3.2.3/bin下做R和Rscript的符號鏈接到/usr/bin下,再次執行即可解決錯誤。
root用戶:
# ln -s /home/hadoop/R-3.2.3/bin/R /usr/bin
# ln -s /home/hadoop/R-3.2.3/bin/Rscript /usr/bin
注意:使用絕對路經建立軟連接,否則會出現Too many levels of symbolic links的錯誤。
 
初次發文,錯誤之處敬請指正,謝謝~
 
 
總結
以上是生活随笔為你收集整理的CentOS7.0离线安装RHadoop的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: linux系统怎么启动u盘启动盘,如何制
 - 下一篇: 网络爬虫--2.HTTP和HTTPS