在集群环境中安装R(步骤清晰内容详实,堪称无脑教程!)
Posted sgyzetrov
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在集群环境中安装R(步骤清晰内容详实,堪称无脑教程!)相关的知识,希望对你有一定的参考价值。
在集群环境下如何解决需要使用R语言的需求?
关键词: PBS作业调度系统; HPC; R;
本文最初思路构思于2018/05,成文于2018/10/17
本文背景是博主的最新一篇论文(上位基因检测机器学习算法创新)临近实验尾声,已经完成在模拟数据中的检测,现在需要在真实数据上进行测试,奈何真实基因数据过于庞大,本地、单机的解决方案捉襟见肘,所以需要调用学院的集群来进行数据处理和运算。
本文设定实验环境有一个最大的痛点是无法重启,原因1、是博主并非管理员只是使用者 2、集群并非是博主一人在使用,所以使用本文方案,无需重启集群,且不需要拥有管理员权限。
博主的其它文章在短短一年时间里已经积累阅读量超过四万余次并收获很多好评也帮到了不少朋友(见该文章评论区)。如果您觉得我这篇文章写得不错;或者您也像博主一样在找资料的时候被垃圾转载、胡乱复制的博文气的肝颤;请务必用万分之一秒的时间为本文点个赞,既对作者表示认同,又为后面来这儿的朋友提供一下对这篇博文质量的参考!
集群操作环境
系统环境:CentOS/Redhat系–20节点集群
登陆节点硬件配置:Intel® Xeon® CPU E5-2609 v2 @ 2.50GHz
Tips:据有经验的老司机学长说装最新版本的R有可能会出现什么bug所以要装旧一点版本的R
所以我使用了与本机开发环境相同的R版本:3.4.1
,我已经开发完毕的R包也是基于这个版本的R。
另外需要集群已经安装了gcc,最好是新一点的版本,不需要7.1.0
那么新,但最少也要4.4.7
这样的版本。
下面正式开始 Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved 安装!
1. 文件夹创建
- 进入登陆节点的
~
路径下,建立两个文件夹:package、src - 进入src中
cd src
2. 下载R安装包
src文件夹
中使用如下命令:
$> wget https://cran.r-project.org/src/base/R-3/R-3.4.1.tar.gz
$> tar -zxvf R-3.4.1.tar.gz
# -z:有gzip属性的
# -x:解压
# -v:显示所有过程
# -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
3. 接下来安装各种R以及依赖
本文出现的命令建议一条一条复制粘贴回车运行,不过高端玩家自己搞一个.sh
文件运行也不是不行就是了。
3.1-a R安装
src文件夹
中
cd R-3.4.1
mkdir builddir
cd builddir
../configure --prefix=$HOME/packages/R '--with-cairo' \\
'--with-jpeglib' '--with-readline' '--with-tcltk' \\
'--with-blas' '--with-lapack' '--enable-R-profiling' \\
'--enable-R-shlib' \\
'--enable-memory-profiling'
# Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
走到这步,zlib会报错,不用担心,Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved 一切尽在掌握中。
Tips:这么直接安装R一定不会成功,因为包括zlib,R的安装还需要很多依赖。所以与其不停重新安装R看它报错哪个再去修依赖,不如全部提前安装好再回头去装R这样一次成功。所以下面的每部分,都应该在安装R之前执行,不过我也会把如果不提前装以下某个特定依赖而直接安装R会产生的报错信息一并给出,作为后面来的朋友的troubleshoot
3.1-b 安装zlib依赖
本部分是针对安装R中出现类似如下报错:
checking if zlib version >= 1.2.5... no
checking whether zlib support suffices... configure: error: zlib
library and headers are required
而提供解决办法,更好的方案是直接按照下面的命令先把所有依赖装好,最后再安装R,一次成功。
zlib依赖安装命令:
cd ~/src
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=$HOME/packages
make
make install
3.2 安装bzip依赖
本部分是针对安装R中出现类似如下报错:
checking bzlib.h presence... yes
checking for bzlib.h... yes
checking if bzip2 version >= 1.0.6... no
checking whether bzip2 support suffices... configure:
error: bzip2 library and headers are required
而提供解决办法,更好的方案是直接按照下面的命令先把所有依赖装好,最后再安装R,一次成功。
bzip依赖安装命令:
cd ~/src
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar xzvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
# 记住要加入一个 -fPIC 到 CFLAG 。(在 Makefile中CFLAG=-fPIC -Wall -Winline -O2 -g...)
# Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
make -f Makefile-libbz2_so
make clean
make
make -n install PREFIX=$HOME/packages
make install PREFIX=$HOME/packages
3.3 安装liblzma依赖
本部分是针对安装R中出现类似如下报错:
checking whether bzip2 support suffices... no
checking for lzma_version_number in -llzma... no
configure: error: "liblzma library and headers are required"
而提供解决办法,更好的方案是直接按照下面的命令先把所有依赖装好,最后再安装R,一次成功。
直接安装liblzma
依赖我就没见有人成功过,更好的解决办法是安装一个名为xz
的包,它包含了liblzma
,而且安装成功率极高。
xz依赖安装命令:
cd ~/src
wget http://tukaani.org/xz/xz-5.2.2.tar.gz
tar xzvf xz-5.2.2.tar.gz
cd xz-5.2.2
./configure --prefix=$HOME/packages
make -j3
make install
3.4 安装pcre依赖
本部分是针对安装R中出现类似如下报错:
checking for pcre/pcre.h... no
checking if PCRE version >= 8.10, < 10.0 and has UTF-8 support... no checking whether PCRE support suffices... configure: error: pcre >= 8.10 library and headers are required
而提供解决办法,更好的方案是直接按照下面的命令先把所有依赖装好,最后再安装R,一次成功。
pcre依赖安装命令:
cd ~/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar xzvf pcre-8.38.tar.gz
cd pcre-8.38
./configure --enable-utf8 --prefix=$HOME/packages
make
make install
3.5 安装libcurl依赖
本部分是针对安装R中出现类似如下报错:
checking libcurl version ... 7.19.7
checking curl/curl.h usability... yes
checking curl/curl.h presence... yes
checking for curl/curl.h... yes
checking if libcurl is version 7 and >= 7.28.0... no
configure: error: libcurl >= 7.28.0 library and headers are
required with support for https
而提供解决办法,更好的方案是直接按照下面的命令先把所有依赖装好,最后再安装R,一次成功。
libcurl依赖安装命令:
cd ~/src
# Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
wget --no-check-certificate https://curl.haxx.se/download/curl-7.47.1.tar.gz
tar xzvf curl-7.47.1.tar.gz
cd curl-7.47.1
./configure --prefix=$HOME/packages
make -j3
make install
3.6 所有依赖都安装完毕,重新安装R
cd ~/src
cd R-3.4.1/
rm -rf builddir # Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
mkdir builddir
cd builddir/
../configure --prefix=$HOME/packages/R --enable-R-shlib=yes --with-tcltk
make
make install
此时按照博主的情况,R直接成功安装。
4. 调用R来跑你的R代码
因为我只是集群的使用者,没有管理员权限,所以我能做的只有通过修改.bashrc
文件来在命令行直接通过命令R
,Rscript
来调用R。
vim ~/.bashrc
在vim下修改.bashrc
文件中R_HOME
和R_LIB
(加入这几个变量)
# .bashrc file under vim, add these lines
export R_HOME=$HOME/packages/R
export R_LIBS=$HOME/packages/R/lib64/library # Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
export PATH=$PATH:$R_HOME/bin
source
命令使.bashrc
文件的修改生效:
source ~/.bashrc
5. PBS脚本的编写用来在集群中运行R程序
与文章主题相关度不高故暂不添加。Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved
如果有需要想了解这部分的内容,点赞博文后在评论区提出,如果很多人有此需求,我会考虑增加本部分。
最后附一张集群节点当前占用情况图:
Reference
(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)
visitor tracker
以上是关于在集群环境中安装R(步骤清晰内容详实,堪称无脑教程!)的主要内容,如果未能解决你的问题,请参考以下文章
如何在Linux中安装redis(图文教程,按照步骤可安装成功)