Ubuntu更新Microsoft ML Server R后RevoScaleR加载失败求助
解决Ubuntu上RevoScaleR加载失败的问题
嗨,针对你更新Microsoft Machine Learning Server R后遇到的RevoScaleR无法正常工作的问题,结合你提到的libRblas.so存在但系统提示找不到、FIFO文件无法打开的报错,我整理了几个针对性的排查和修复步骤:
1. 修复libRblas.so的库路径识别问题
虽然文件在/runtime/R/lib路径下,但系统的动态链接库可能没把这个路径纳入搜索范围,你可以这样处理:
- 临时生效(当前会话):先执行下面的命令,再重新启动R尝试加载包
export LD_LIBRARY_PATH=/runtime/R/lib:$LD_LIBRARY_PATH - 永久生效(所有会话):新建或编辑
/etc/ld.so.conf.d/mlserver-r.conf文件,添加一行内容:
然后执行/runtime/R/libsudo ldconfig更新动态链接库缓存,让系统永久识别这个路径 - 检查文件权限:确保R进程能读取该文件,执行:
sudo chmod 644 /runtime/R/lib/libRblas.so
2. 解决FIFO文件无法打开的报错
报错里的/tmp/Rtmp9FpGRx/RevoFIFO.140827.2是RevoScaleR创建的临时FIFO文件,问题大概率出在临时目录权限、残留进程上:
- 清理R临时目录:先退出所有R相关进程,然后删除对应的临时目录,再重启R重试:
rm -rf /tmp/Rtmp9FpGRx - 检查
/tmp目录权限:/tmp需要开放足够的读写权限,正常应该是1777权限,执行下面的命令检查并修复:ls -ld /tmp # 如果权限不对,执行: sudo chmod 1777 /tmp - 终止残留进程:可能有之前的RevoScaleR进程占用了资源,查找并终止它们:
ps aux | grep Revo sudo kill -9 [找到的进程ID]
3. 重新配置ML Server R环境
如果上面的步骤都没效果,试试重新注册ML Server的R组件,确保环境配置正确:
sudo /opt/microsoft/mlserver/[你的ML Server版本号]/bin/R/activate.sh
(注意替换[你的ML Server版本号]为实际版本,你可以在/opt/microsoft/mlserver/目录下看到具体的版本文件夹)
4. 获取更详细的错误日志
你说没找到相关日志,其实可以通过两种方式获取更多细节:
- 检查ML Server的系统日志:查看
/var/log/microsoft/mlserver/目录下的日志文件,里面可能有组件加载的报错信息 - 在R中开启详细日志:启动R后先执行下面的代码,再尝试加载包,会输出更详细的加载过程:
options(revo.userlog.level="trace") library(RevoScaleR)
如果以上方法都无法解决,建议尝试重新安装RevoScaleR包(一定要用ML Server自带的R来执行安装):
/opt/microsoft/mlserver/[你的ML Server版本号]/bin/Rscript -e "install.packages('RevoScaleR', repos='https://mran.microsoft.com/snapshot/[对应版本的MRAN快照日期]/')"
(需要替换版本号和对应的MRAN快照日期,确保和你的ML Server版本匹配)
内容的提问来源于stack exchange,提问作者Leonardo Lanchas
相关产品推荐
相关产品推荐

