Cloudera私有云CML动手实验营_2023-07-14

本文详细介绍了Cloudera Machine Learning (CML) 平台上进行大数据处理的实践过程。从创建Workspace、配置全局环境,到创建Project,再到数据接入、数据探索、模型构建、模型训练、模型部署和服务,最后是应用程序的部署。文中通过World Wide Telco的客户流失案例,展示了如何在CML中完成整个工作流程,包括使用Spark on K8s进行数据处理,利用MLFlow跟踪模型训练指标,并将模型部署为REST API服务。

https://github.com/mmehra12/cml_churn_demo/tree/master

1 示例介绍

在本次研讨会中,我们将向您介绍World Wide Telco organization的一个真实案例。该企业有许多机器学习用例,今天重点关注一个特定场景的用例。在该用例中,企业试图减少客户的流失(即取消),并且大多数取消来自企业的呼叫中心。在本次的动手实操中,客户Francisco会打电话表示取消,呼叫中心应用程序将根据Francisco的取消来预测取消原因,向WW Telco的客户经理Stefan提供建议。然后,他将向Francisco提供报价,用户将选择接受或不接受。
在这里插入图片描述
实操环节将带着大家完成CML的登录、代码获取以及使用已部署的模型构建完全工作应用程序的整个过程,具体操作流程如下:

  1. 初始化一个属于自己的CML Workspace
  2. 创建一个属于自己的Project(基于提供的代码模版)
  3. 将数据接入到属于我们自己的工作目录下
  4. 使用代码进行数据探索(基于Spark On K8s的环境进行数据探索)
  5. 构建一个模型实验环境,用于训练模型
  6. 模型部署(使模型有对外提供服务的能力)
  7. 应用程序部署(基于部署好的模型,与自己的应用程序打通)

2 创建一个Workspace

本次以参与客户公司为单位,每个公司初始化一个Workspace,接下来介绍如何初始化一个Workspace,具体操作流程如下:

  1. 使用个人账号登录到Cloudera Manager的控制台
    在这里插入图片描述
  2. 点击ECS服务进入到服务的管理页面
    在这里插入图片描述
  3. 点击”Web UI“,打开Storage UI、ECS Web UI、Console页面
    在这里插入图片描述
    Storage UI:该页面主要是Longhorn提供的查看和管理K8S分布式存储的功能
    在这里插入图片描述
    ECS Web UI:主要是K8S的原生管理界面,用于查看和管理调度、部署、job及pod等功能
    在这里插入图片描述
    Console:主要是Cloudera提供的DataService服务的管理控制台,可以实现(资源的统一监控、Base集群环境的管理、用户体系的管理、Data Warehouse、ML Workspace、Data Engineering、提供资源利用率报告等)
    在这里插入图片描述
  4. 进入到Console控制台后,点击”Machine Learning”进入到CML的管理页面
    在这里插入图片描述
  5. 点击”Provision Workspace“进入到配置Workspace页面
名称 备注
Workspace Name cloudera-workspace 以公司名称创建一个相应的Workspace
Select Environment pvc01 选择默认环境即可(这里就是对应的CDP Base集群)
Namespace cloudera-workspace 自动生成
NFS Server Internal 选择内建NFS服务
Custom NFS Settings 不用设置
Enable Governance 勾选
Governance Principal Name mlgov 默认即可
Enable Model Metrics 勾选
Enable Monitoring 勾选
CML Static Subdomain cldrws 可不填写

在这里插入图片描述
在这里插入图片描述
6. 点击”Provision Workspace“,初始化Workspace
在这里插入图片描述
在初始化Workspace的过程中,会有一个比较长的等待时间(约20分钟),在此期间主要是K8S上启动需要的pods等动作
可以查看相应的Event Logs:
在这里插入图片描述
在这里插入图片描述
此时也可以进入到ECS Web UI页面查看自己的Workspace启动所涉及到的动作
在这里插入图片描述
可以看到当前Workspace初始化的过程及进度

在 Ansible 中,可以通过 `file` 模块实现文件的删除操作,并结合条件判断确保该操作仅在特定任务成功时执行。对于 CM Agent 升级任务,可以通过注册任务执行结果并使用 `when` 条件来控制文件删除的执行时机。 ### 使用 `file` 模块删除文件 Ansible 的 `file` 模块可以管理文件系统中的对象,包括删除文件。以下是一个删除 `/tmp/CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES` 文件的任务示例: ```yaml - name: 删除 CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES 文件 file: path: /tmp/CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES state: absent ``` 其中,`path` 指定要删除的文件路径,`state: absent` 表示确保文件不存在,如果文件存在则删除它,如果文件不存在则不报错。 ### 条件判断控制任务执行 为了确保该删除操作仅在 CM Agent 升级成功时执行,可以在任务中使用 `when` 条件,并结合升级任务的注册变量。例如: ```yaml - name: CM agent upgrade shell: sudo /usr/bin/yum update -y --disablerepo="*" --enablerepo="cloudera-repo" cloudera-manager-agent register: cm_agent_upgrade_result - name: 删除 CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES 文件 file: path: /tmp/CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES state: absent when: cm_agent_upgrade_result is succeeded ``` 在上述配置中,`register` 用于将升级任务的执行结果保存到 `cm_agent_upgrade_result` 变量中,而 `when: cm_agent_upgrade_result is succeeded` 表示仅当该任务执行成功时才执行删除操作。 ### 权限提升与执行方式 如果删除文件需要更高的权限,可以使用 `become` 和 `become_method` 来提权执行该任务。例如,在 Playbook 中添加以下配置: ```yaml - name: 删除 CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES 文件 file: path: /tmp/CLOUDERA_SKIP_PTRACE_CHECK_ON_UPGRADES state: absent become: yes become_method: su become_flags: -r when: cm_agent_upgrade_result is succeeded ``` 此配置使用了 `become_method` 和 `become_flags` 来指定切换用户的方式,确保删除操作具备足够的权限[^2]。 ### 调试与验证 在调试过程中,可以通过 `debug` 模块输出注册变量的内容,以确认升级任务是否成功完成: ```yaml - name: CM agent upgrade output debug: var: cm_agent_upgrade_result.stdout_lines ``` 这样可以验证任务执行结果,并确保删除操作仅在升级成功时触发。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值