TDH-discover组件安装及.jfindClass(o) : class not found解决办法

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


TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第1张图片
错误信息
解决方法 (discover-notebook同理)
  1. 下载镜像包放到集群节点上,
    链接:https://pan.baidu.com/s/13KMi7IYttPeJ_1ttNmr5Vw
    提取码:fe1y
    链接:https://pan.baidu.com/s/1L1_4S7nLVXSRWA4dWcoLug
    提取码:1x4c

  2. 放到discover-ide节点,执行docker load < discover-ide.tar本地加载镜像,第一次加载很慢,需要等待

    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第2张图片
    load镜像

    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第3张图片
    load镜像

  3. 加载完后执行docker images|grep ide,可以看到步骤2加载的ide镜像

    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第4张图片
    镜像文件

    PS:notebook镜像上传后,其镜像的名称和tag都显示是 不影响我们去使用他 用id就可以做调整

  4. 备份下当前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,按照自己集群的来)

    镜像备份

    此时可以看到备份的镜像
    镜像备份

  5. 修改第三步加载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

    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第5张图片
    替换镜像

  6. 将ide的image push到仓库
    docker push mll01:5000/transwarp/discover-ide:transwarp-5.2.2-final
    就是步骤5的image

    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第6张图片
    push镜像

    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第7张图片
    push镜像

  7. push成功后重启discover,进入ide测试正常
    启动的时候会很慢,ide的容器一直处于ContainerCreating,kubectl describe pod discover-ide-discover1-2669943517-lzknx 可以看出一直在拉镜像,稍等即可


    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第8张图片
    重启discover

    最后执行成功:


    TDH-discover组件安装及.jfindClass(o) : class not found解决办法_第9张图片
    完成

你可能感兴趣的:(TDH-discover组件安装及.jfindClass(o) : class not found解决办法)