linux下R及Rstudio及Rhadoop安装
生活随笔
收集整理的這篇文章主要介紹了
linux下R及Rstudio及Rhadoop安装
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.R語(yǔ)言環(huán)境安裝及部署R語(yǔ)言包下載:wget https://cran.r-project.org/src/base/R-3/R-3.4.4.tar.gz解壓: tar -zxvf R-3.3.2.tar.gz 加載依賴(lài)環(huán)境:yum install -y gcc yum install -y glibc-headers yum install -y libreadline6-dev gfortran yum install -y readline-devel yum install -y wget libXt-devel yum install -y fonts-chinese tcl tcl-devel tclx tk tk-devel yum install -y mesa-libGLU mesa-libGLU-devel yum install -y install bzip2-devel yum install -y install xz-devel.x86_64 yum install -y install pcre-devel yum install -y install libcurl yum install -y install libcurl-devel yum install -y texinfo.x86_64 yum install -y texlive-pdftex-doc.noarch yum install -y texliveyum install gcc-c++yum install gcc-gfortran建立編譯后的文件夾R:mkdir /usr/local/R(路徑根據(jù)自己的配置愛(ài)好選擇)通過(guò)configure進(jìn)行安裝:cd /usr/local/R-3.4.4 ./configure --enable-R-shlib=yes --with-tcltk --prefix=/usr/local/Rmake & make install配置環(huán)境變量:vim /etc/profile#add R envR_HOME=/usr/local/R PATH=$PATH:$R_HOME/binexport R_HOME=/usr/local/R配置生效: source /etc/profile輸入R進(jìn)行命令行啟動(dòng)。
2.Rstudio安裝及部署下載:wget https://download2.rstudio.org/rstudio-server-rhel-0.99.893-x86_64.rpm(注意linux版本,這里以centos7.4為例)安裝:sudo yum install --nogpgcheck rstudio-server-rhel-0.99.893-x86_64.rpm配置: 安裝之后配置文件里沒(méi)有東西,一般會(huì)生成/etc/rserver.conf,但內(nèi)容為空如果需要修改端口地址(默認(rèn)8787)等的話(huà),那么就自己加上可以做的限制還是比較多的 rstudio-server是通過(guò)服務(wù)器的用戶(hù)名和密碼登陸的這里寫(xiě)一些配置www-port=80 配置默認(rèn)端口www-port=8787rsession-which-r=/opt/R/lib64/R/bin/Rwww-address=0.0.0.0 可訪(fǎng)問(wèn)的ip地址,默認(rèn)是全開(kāi)放rsession-memory-limit-mb=4000 限制使用的最大內(nèi)存rsession-stack-limit-mb=10 限制最大的棧大小rsession-process-limit=100 限制最多進(jìn)程數(shù)limit-file-upload-size-mb=100 設(shè)置最大的上傳文件大小登錄問(wèn)題:root用戶(hù)無(wú)法登陸,新建一個(gè)用戶(hù)進(jìn)行登陸 useradd -d /home/R -m R,創(chuàng)建用戶(hù)的同時(shí)指定主目錄 passwd R,設(shè)置密碼******IP:87873.Rhadoop安裝及部署(hadoop是基于cdh版本 Rhadoop中的包的版本選擇最新的,git上最后更新時(shí)間為2015年)環(huán)境:基于hadoop和R語(yǔ)言(1)安裝rJava包:在聯(lián)網(wǎng)的情況下,可以進(jìn)入R命令,安裝rJava包:> install.packages("rJava")如果待安裝機(jī)器不能上網(wǎng),可以將源文件下載到本地,然后通過(guò)shell命令R CMD INSTALL ‘package_name’來(lái)安裝:R CMD INSTALL "rJava_0.9-5.tar.gz"(2)安裝RHadoop環(huán)境(rhdfs、rmr2、rhbase、RHive)1、安裝rhdfs包(僅安裝在namenode上):R CMD INSTALL "rhdfs_1.0.5.tar.gz"在/etc/profile中設(shè)置環(huán)境變量HADOOP_HOME、HADOOP_CON_DIR、HADOOP_CMDexport HADOOP_HOME=/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.0.p0.18/lib/hadoopexport HADOOP_CONF_DIR=/etc/hadoop/confexport HADOOP_CMD=/usr/bin/hadoop安裝后調(diào)用rhdfs,測(cè)試安裝:> library("rhdfs")Loading required package: rJavaHADOOP_CMD=/usr/bin/hadoopBe sure to run hdfs.init()當(dāng)按要求輸入hdfs.init()后,如果出現(xiàn):> hdfs.init()WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable需要在/etc/profile中設(shè)置環(huán)境變量JAVA_LIBRARY_PATH:export JAVA_LIBRARY_PATH=/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.0.p0.18/lib/hadoop/lib/native如果設(shè)置后問(wèn)題依然沒(méi)有解決,需要將native下面的libhadoop.so.0 及 libhadoop.so.1.0.0拷貝到 /usr/lib64下面2、安裝rmr2包(各個(gè)主機(jī)上都要安裝):安裝rmr2包之前,需要安裝其依賴(lài)的7個(gè)包,他們分別是:[root@master]# lsdigest_0.6.3.tar.gz plyr_1.8.tar.gz reshape2_1.2.2.tar.gz stringr_0.6.2.tar.gzfunctional_0.4.tar.gz Rcpp_0.10.3.tar.gz RJSONIO_1.0-3.tar.gz[root@master RHadoop-deps]# R CMD INSTALL "digest_0.6.3.tar.gz"[root@master ]# R CMD INSTALL "plyr_1.8.tar.gz"[root@master ]# R CMD INSTALL "reshape2_1.2.2.tar.gz"[root@master ]# R CMD INSTALL "stringr_0.6.2.tar.gz"[root@master ]# R CMD INSTALL "functional_0.4.tar.gz"[root@master ]# R CMD INSTALL "Rcpp_0.10.3.tar.gz"[root@master ]# R CMD INSTALL "RJSONIO_1.0-3.tar.gz"安裝:R CMD INSTALL "rmr2_2.2.0.tar.gz"需要在/etc/profile中設(shè)置環(huán)境變量HADOOP_STREAMING:export HADOOP_STREAMING=/opt/cloudera/parcels/CDH-5.7.2-1.cdh5.7.0.p0.18/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh5.7.0.jar3、安裝rhbase包(僅安裝在namenode上):rhbase-1.1.1使用的是Thrift 0.8.0版本,下載網(wǎng)址為 http://archive.apache.org/dist/thrift/0.8.0/thrift-0.8.0.tar.gza、在centos系統(tǒng)下輸入shell命令sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel lib-devel python-devel ruby-devel安裝一些Thrift相關(guān)的工具或庫(kù)。有的時(shí)候,還需要安裝openssl-devel(在Ubuntu下為libssl-dev),不然會(huì)提示libcrypto.so找不到yum install openssl-develb、解壓安裝Thrift[root@master admin]# cd thrift-0.8.0[root@master thrift-0.8.0]# ./configure --with-boost=/usr/include/boost JAVAC=/usr/java/jdk1.6.0_31/bin/javac[root@master thrift-0.8.0]# make[root@master thrift-0.8.0]# make install 在/etc/profile中設(shè)置環(huán)境變量PKG_CONFIG_PATH:export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/驗(yàn)證設(shè)置的正確性,在shell下輸入pkg-config --cflags thrift如結(jié)果如下所示:[root@master thrift-0.8.0]# pkg-config --cflags thrift-I/usr/local/include/thrift 則說(shuō)明配置成功。c、復(fù)制library文件到/usr/lib下面(x64位的下面還要復(fù)制到/usr/lib64下面,或者僅僅復(fù)制到/usr/lib64下面)cp /usr/local/lib/libthrift.so.0 /usr/lib 有時(shí)候僅復(fù)制這個(gè)還是有問(wèn)題的,還需要復(fù)制libthrift-0.8.0.so :cp /usr/local/lib/libthrift-0.8.0.so /usr/lib 最好把libthrift相關(guān)的都復(fù)制進(jìn)去,如 libthrift.so.0、libthrift.so.0.0.0等。(x64位的下面還要復(fù)制到/usr/lib64下面,或者僅僅復(fù)制到/usr/lib64下面)d、安裝rhbaseR CMD INSTALL "rhbase_1.1.1.tar.gz"如果安裝的過(guò)程中,如果發(fā)現(xiàn)libRblas.so、libRlapack.so、libR.so等找不到,需要從$R_HOME/lib將這些library拷貝到/usr/lib64目錄下:[root@slave1 ~]# cp /usr/lib64/R/lib/libRblas.so /usr/lib64/[root@slave1 ~]# cp /usr/lib64/R/lib/libRlapack.so /usr/lib64/[root@slave1 ~]# cp /usr/lib64/R/lib/libR.so /usr/lib64/ 4、安裝RHive(各個(gè)主機(jī)上都要安裝):RHive是一種通過(guò)Hive高性能查詢(xún)來(lái)擴(kuò)展R計(jì)算能力的包。它可以在R環(huán)境中非常容易的調(diào)用HQL, 也允許在Hive中使用R的對(duì)象和函數(shù)。理論上數(shù)據(jù)處理量可以無(wú)限擴(kuò)展的Hive平臺(tái),搭配上數(shù)據(jù)挖掘的利器R環(huán)境, 堪稱(chēng)是一個(gè)完美的大數(shù)據(jù)分析挖掘的工作環(huán)境。1、Rserve包的安裝:RHive依賴(lài)于Rserve,因此在安裝R的要按照本文R的安裝方式,即附帶后面兩個(gè)選項(xiàng)(--disable-nls --enable-R-shlib)enable-R-shlib是將R作為動(dòng)態(tài)鏈接庫(kù)進(jìn)行安裝,這樣像Rserve依賴(lài)于R動(dòng)態(tài)庫(kù)的包就可以安裝了,但缺點(diǎn)會(huì)有20%左右的性能下降。Rserve使用的的是在線(xiàn)安裝方式:install.packages("Rserve")$R_HOME的目錄下創(chuàng)建Rserv.conf文件,寫(xiě)入“remote enable''保存并退出。通過(guò)scp -r 命令將Master節(jié)點(diǎn)上安裝好的Rserve包,以及Rserv.conf文件拷貝到所有slave節(jié)點(diǎn)下。當(dāng)然在節(jié)點(diǎn)不多的情況下也可以分別安裝Rserve包、創(chuàng)建Rserv.conf。scp -r /usr/lib64/R/library/Rserve slave1:/usr/lib64/R/library/scp -r /usr/lib64/R/Rserv.conf slave3:/usr/lib64/R/在所有節(jié)點(diǎn)啟動(dòng)RserveRserve --RS-conf /usr/lib64/R/Rserv.conf在master節(jié)點(diǎn)上telnet(如果未安裝,通過(guò)shell命令yum install telnet安裝)所有slave節(jié)點(diǎn):telnet slave1 6311顯示Rsrv013QAP1則表示連接成功。2、RHive包的安裝:安裝RHive_0.0-7.tar.gz,并在master和所有slave節(jié)點(diǎn)上創(chuàng)建rhive的data目錄,并賦予讀寫(xiě)權(quán)限(最好將$R_HOME賦予777權(quán)限)[root@master admin]# R CMD INSTALL RHive_0.0-7.tar.gz[root@master admin]# cd $R_HOME[root@master R]# mkdir -p rhive/data[root@master R]# chmod 777 -R rhive/datamaster和slave中的/etc/profile中配置環(huán)境變量RHIVE_DATA=/usr/lib64/R/rhive/dataexport RHIVE_DATA=/usr/lib64/R/rhive/data通過(guò)scp命令將master節(jié)點(diǎn)上安裝的RHive包拷貝到所有的slave節(jié)點(diǎn)下:scp -r /usr/lib64/R/library/RHive slave1:/usr/lib64/R/library/查看hdfs文件下的jar是否有讀寫(xiě)權(quán)限hadoop fs -ls /rhive/lib安裝rhive后,hdfs的根目錄并沒(méi)有rhive及其子目錄lib,這就需要自己建立,并將/usr/lib64/R/library/RHive/java下的rhive_udf.jar復(fù)制到該目錄hadoop fs -put /usr/lib64/R/library/RHive/java/rhive_udf.jar /rhive/lib否則在測(cè)試rhive.connect()的時(shí)候會(huì)報(bào)沒(méi)有/rhive/lib/rhive_udf.jar目錄或文件的錯(cuò)誤。最后,在hive客戶(hù)端啟(master、各slave均可)動(dòng)hive遠(yuǎn)程服務(wù)(rhive是通過(guò)thrift連接hiveserver的,需要要啟動(dòng)后臺(tái)thrift服務(wù)):nohup hive --service hiveserver &3、RHive的使用及測(cè)試:1、RHive API從HIVE中獲得表信息的函數(shù),比如rhive.list.tables:獲得表名列表,支持pattern參數(shù)(正則表達(dá)式),類(lèi)似于HIVE的show tablerhive.desc.table:表的描述,HIVE中的desc tablerhive.exist.table3、RHive簡(jiǎn)單應(yīng)用載入RHive包,令連接Hive,獲取數(shù)據(jù):> library(RHive)> rhive.connect(host = 'host_ip')> d <- rhive.query('select * from emp limit 1000')> class(d)> m <- rhive.block.sample(data_sku, percent = 0.0001, seed = 0)> rhive.close()一般在系統(tǒng)中已經(jīng)配置了host,因此可以直接rhive.connect()進(jìn)行連接,記得最后要有rhive.close()操作。 通過(guò)HIVE查詢(xún)語(yǔ)句,將HIVE中的目標(biāo)數(shù)據(jù)加載至R環(huán)境下,返回的 d 是一個(gè)dataframe。實(shí)際上,rhive.query的實(shí)際用途有很多,一般HIVE操作都可以使用,比如變更scheme等操作:> rhive.query('use scheme1')> rhive.query('show tables')> rhive.query('drop table emp')但需要注意的是,數(shù)據(jù)量較大的情況需要使用rhive.big.query,并設(shè)置memlimit參數(shù)。將R中的對(duì)象通過(guò)構(gòu)建表的方式存儲(chǔ)到HIVE中需要使用> rhive.write.table(dat, tablename = 'usertable', sep = ',')而后使用join等HIVE語(yǔ)句獲得相關(guān)建模數(shù)據(jù)。其實(shí)寫(xiě)到這兒,有需求的看官就應(yīng)該明白了,這幾項(xiàng) RHive 的功能就足夠 折騰些有趣的事情了。注1:其他關(guān)于在HIVE中調(diào)用R函數(shù),暫時(shí)還沒(méi)有應(yīng)用,未來(lái)更新。注2:rhive.block.sample這個(gè)函數(shù)需要在HIVE 0.8版本以上才能執(zhí)行
總結(jié)
以上是生活随笔為你收集整理的linux下R及Rstudio及Rhadoop安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据结构与算法--8.二叉树的基础知识
- 下一篇: mysql php7安装配置_cento