• cube-studio配置镜像仓库并允许


    理论上说,你配置后就能执行任何命令。实际上也可以。

    cube-studio是利用rancher(理解为k8s的升级版)管理的

    操作步骤:整1个docker镜像,输入参数执行,镜像内的命令

    执行步骤:

    1.你拉1个cenos7的服务器环境,然后将本地所需要的内容,打包好你需要的环境,可以参考这篇

    看这一篇就够,docker往镜像中的Hosts中写入值(docker执行shell脚本)_我要用代码向我喜欢的女孩表白的博客-CSDN博客

    2.镜像打包后,使用docker run本地测试

    3.提交到自己的镜像仓库

    4.在cube中创建仓库模板,就写你的镜像仓库

    5.在cube中创建镜像,就写你的镜像地址

    6.在cube中创建模板组件,就与你的执行命令的脚本与配置参数对应

    7.拖拽组件,输入参数,执行命令

    搭建私有仓库我用的是harbor:

    harbor配置远程仓库_我要用代码向我喜欢的女孩表白的博客-CSDN博客

    建立好私有仓库后

    远程镜像仓库
    ---------------
    harbor管理页面
    http://192.168.9.56:83/

    账号密码
    admin
    Harbor12345
    -------------
    镜像推送过程
    1.登录
    sudo docker login 192.168.9.56:83
    2.打标记
    sudo docker image tag 【本地镜像的名字:版本】   192.168.9.56:83/cube_public/【新名称】
    sudo docker image tag sparkdemo:v4 192.168.9.56:83/cube_public/sparkdemo
    3.推送
    sudo docker push 192.168.9.56:83/cube_public/sparkdemo

    cube-studio上的应用

    在导航栏目录上选择,训练-》仓库,点击右边的+号,新增

     填上,你平常在服务端登录harbor的东西,然后点击保存

    新增界面

    -------------------

    名称【你harbor中建立的项目仓库名,当然,你也可以自己写一个名字,他不会使用此名称去连接harbor,仅仅是作为cube-studio中的仓库名称】

    名称:cube_public

    域名【你使用harbor登录的网址名,也是login harbor的地址名】

    域名:192.168.9.56:83

    用户名【你harbor登录时候用的名字】

    用户名:admin

    密码【用户名对应的密码】

    密码:Harbor12345

     然后点击,训练-》模板镜像,点击旁边的+号新增

     模板新增

    ---------------------

    仓库【从你之前构建的仓库中选择】

    仓库:cube_public

    非常重要,名称【你平常怎么拉取镜像的,就写这个pull后面的整个内容,从仓库到版本都要写上,我之前就在这里踩了坑,不写版本默认,拉取latest版本】

    名称:192.168.9.56:83/cube_public/sparkdemo

    描述:随便写

    我的镜像是提前已经全部构建好了,所有的配置,是独立进行配置的,所以不用写其他

    然后保存

     任务构建,训练-》任务模板

     任务模板就是,你在任务流中,可以拿出来使用的算子(镜像整体)

    任务模板填写

    -----------------------

    功能分类【工作流平台,点击左边可以拖拽的那些模块,这里选择数据处理】

    功能分类:数据处理

    镜像【你刚刚构建的镜像仓库模板】

    镜像:xxx自己选择

    名称【拖拽的算子,名称】

    名称:spark2

    版本【选择release,公开的,都能使用你创建的算子】

    版本:release

    描述:随便填

    启动参数【你输入的参数,注意不是命令,他不能作为docker容器内的命令,马上就会介绍这个东西,可以参考他下面的提示内容】

    启动参数:

    {
        "参数": {
            "workdir": {
                "type": "str",
                "item_type": "str",
                "label": "启动目录",
                "require": 0,
                "choice": [],
                "range": "",
                "default": "/mnt/xx",
                "placeholder": "",
                "describe": "启动目录",
                "editable": 1,
                "condition": "",
                "sub_args": {}
            },
            "command": {
                "type": "str",
                "item_type": "str",
                "label": "启动命令",
                "require": 1,
                "choice": [],
                "range": "",
                "default": "sh start.sh",
                "placeholder": "",
                "describe": "启动命令",
                "editable": 1,
                "condition": "",
                "sub_args": {}
            }
        }
    }

    如果你要配置hosts,DockerFile不能配置,他这里也可以配置,并且会生效

     

    他等价于

    sudo docker run -d --name demo --add-host hadoop01:192.168.9.199 --add-host hadoop02:192.168.9.56 --add-host hadoop03:192.168.9.57 demo.jar

     保存后,打开任务流,选择或创建一个,进行工作

    ------------------------------------------------------------------------------------------------

    插入一段,我踩的坑,问了cube开源群的作者我才明白。

    不着急,先把下面的图看一遍,看完,我会说流程。

    开源sh脚本要与你的模板的-配置参数对应

    我写的dockerfile的内容

     

    官方shell脚本中的内容

     

    任务模板中的启动参数内容:

    {
        "shell": {
            "--command": {
                "type": "str",
                "item_type": "str",
                "label": "执行命令",
                "require": 1,
                "choice": [],
                "range": "",
                "default": "spark-submit xx",
                "placeholder": "",
                "describe": "执行命令",
                "editable": 1,
                "condition": "",
                "sub_args": {}
            }
        }
    }

    工作流执行界面(拿任务流来做演示)

     

     

    他除了自定义镜像外,只支持一种,任务模板的执行方式。通过传递参数,执行脚本(我之前是想着自定义镜像能直接在参数界面执行linux命令,我就把自定义镜像的参数copy到组件中,结果执行失败,后面去群里问开源作者们,得到的流程是)

    自定义任务模板的流程:

    在--command中写的其实只是参数(他与参数模板对应),点击运行后,他会去DockerFile中,找到对应的sh脚本(或者其他脚本py或者jar之类),并且去sh脚本中找到,$command,将值传过去

    注意,你在任务模板中写的参数名(如command),必须和dockerFile中的执行命令(如sh start.sh)中的command相对应,而且针对不通的脚本,有不同对应参数的方法,不可自己乱写脚本的对应参数,应当去查看github中的脚本,或者视频中对应参数的方法,当然也可以去开源群里问

    cube-studio/start.sh at master · tencentmusic/cube-studio · GitHub

    附送开源群连接

     

     

    --------------------------------------------------------------------------------------------------

    使用

    -----------

    从左边拉出你刚刚创建的算子

    在command中执行,docker中的命令,点击旁边的保存,将右边导航栏,拉在最上面,点击run

    第一次很慢,后面就会很快

     

    另外大家也可以打开容器,查看详细情况

     

     

  • 相关阅读:
    操作系统知识
    洗衣洗鞋小程序干洗店洗衣店上门取衣门店管理系统开发定制
    【Interaction交互模块】AngularJointDrive角度关节驱动
    WWDC22 前瞻:iOS 16、iPadOS 16等五大操作系统亮相,AR/VR头显将缺席?
    总结影响系统健壮性的一些因素
    华为云Nginx配置
    【3etcd+3master+3woker+2lb】k8s实验环境搭建一:机器规划+初始化环境
    C++11闭包函数的几种实现方法
    计算机网络体概念
    QT 工具栏设置
  • 原文地址:https://blog.csdn.net/qq_38403590/article/details/126264471