TDH平台的discover组件在默认情况下是不提供镜像的,因此如果直接在TDH manager中进行创建的话,会提示镜像获取不到而不能成功安装。
所以需要咨询星环的技术服务去索要discover的安装镜像。镜像必须是TDH平台对应的版本,不然在manager中无法选择到。
但是老版本就会存在.jfindClass(o) : class not found的问题,下面会说明如何解决,本质是需要最新的镜像替换掉老版本。
上传discover镜像文件
需要安装Discover和Sophon、redis的用户请获取安装包TDH-Machine-Learning-Transwarp-X.X.X-final.tar.gz,然后按照步骤执行如下命令:
# 解压出Discover和Sophon的镜像文件TDH-machine-learning-transwarp-5.2.1-final.image
tar xvzf TDH-Machine-Learning-Transwarp-5.2.1-final.tar.gz
# 加载镜像
docker load -i TDH-machine-learning-transwarp-5.2.1-final.image
# 将当前安装包的TAG值赋给变量TAG
export TAG='transwarp-5.2.1-final'
# 将各个镜像push到私有仓库
machine_learning_images=(sophon-server sophon-scheduler sophon-redis sophon-tensorflow discover-localcran discover-notebook discover-ide)
for eachImage in "${machine_learning_images[@]}"
do
docker tag transwarp/${eachImage}:${TAG} ${HOSTNAME}:5000/transwarp/${eachImage}:${TAG}
docker push ${HOSTNAME}:5000/transwarp/${eachImage}:${TAG}
done
manager中安装discover组件服务
按照常规的组件安装流程一步步点击安装就可以了,没有需要特别修改的参数配置。
.jfindClass(o) : class not found
有的TDH版本下,discover安装完成后,ide及notebook中我们去写R代码时,首先要执行的discover.init()命令无法正常执行,会报.jfindClass(o) : class not found
的错误,这个是星环discover老版本镜像的问题,需要通过替换镜像来解决,同样的,需要咨询星环技术服务,获取正确的镜像tar包:discover-ide.tar 及 discover-notebook.tar。
问题描述
在discover ide中使用discover.init()报错:Error in .jfindClass(o) : class not found
解决方法 (discover-notebook同理)
下载镜像包放到集群节点上,
链接:https://pan.baidu.com/s/13KMi7IYttPeJ_1ttNmr5Vw
提取码:fe1y
链接:https://pan.baidu.com/s/1L1_4S7nLVXSRWA4dWcoLug
提取码:1x4c-
放到discover-ide节点,执行
docker load < discover-ide.tar
本地加载镜像,第一次加载很慢,需要等待
-
加载完后执行
docker images|grep ide
,可以看到步骤2加载的ide镜像
PS:notebook镜像上传后,其镜像的名称和tag都显示是<none> 不影响我们去使用他 用id就可以做调整 -
备份下当前522的镜像
docker tag f7fd2d8e236d mll01:5000/transwarp/discover-ide:transwarp-5.2.2-20190709
(其中f7fd2d8e236d是image id , transwarp-5.2.2-20190709是tag名,自行定义。
mll01:5000/transwarp/discover-ide是REPOSITORY,按照自己集群的来)
此时可以看到备份的镜像
-
修改第三步加载ide镜像
docker tag 2ee337febdc6 mll01:5000/transwarp/discover-ide:transwarp-5.2.2-final
2ee337febdc6 是image id,
mll01:5000/transwarp/discover-ide:transwarp-5.2.2-final修改成集群ide的正统tag,
此时可以看到镜像的id变成2ee337febdc6
-
将ide的image push到仓库
docker push mll01:5000/transwarp/discover-ide:transwarp-5.2.2-final
就是步骤5的image
-
push成功后重启discover,进入ide测试正常
启动的时候会很慢,ide的容器一直处于ContainerCreating,kubectl describe pod discover-ide-discover1-2669943517-lzknx 可以看出一直在拉镜像,稍等即可
最后执行成功: