【mlflow系列3】mlflow 升级(upgrade)

背景

mlflow 的更新迭代速度还是很快的,平均一个月一个大版本的更新,截止到11月1号,已经更新到了1.11.0版本
我们查看mlflow release,就能看到早在1.10.0版本,就提供了对model registry的更好的feature支持,以及能够对实验进行逻辑删除操作,
而这些features 在mlflow 1.4.0是没有的,特别是删除实验的特性,如果实验很多的情况下,我们看到的实验是杂乱无章的,很不方便我们进行管理,所以我们进行mlflow的升级

升级以及准备

参照之前mlflow的搭建使用 ,我们先建立mlflow 1.4.0 和mlflow 1.11.0的conda环境
假设你已经建立好了对应的conda环境,且分别为mlflow-1.4.0 和mlflow-1.11.0 则执行:

conda activate mlflow-1.11.0

参考mlflow db upgrade ,执行

mlflow db upgrade mysql://user:passwd@host:port/db
如:mlflow db upgrade mysql://root:root@localhost/mlflow

其中

名词解释
user数据库的用户名
passwd数据库的密码
host数据库的主机地址
port数据库的端口,如默认为3306则可以省略
db数据库的database

如果执行成功则会看到如下输出信息:

2020/11/02 10:24:50 INFO mlflow.store.db.utils: Updating database tables
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade 2b4d017a5e9b -> cfd24bdc0731, Update run status constraint with killed
INFO  [alembic.runtime.migration] Running upgrade cfd24bdc0731 -> 0a8213491aaa, drop_duplicate_killed_constraint
WARNI [0a8213491aaa_drop_duplicate_killed_constraint_py] Failed to drop check constraint. Dropping check constraints may not be supported by your SQL database. Exception content: (MySQLdb._exceptions.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHECK status' at line 1")
[SQL: ALTER TABLE runs DROP CHECK status]
(Background on this error at: http://sqlalche.me/e/f405)
INFO  [alembic.runtime.migration] Running upgrade 0a8213491aaa -> 728d730b5ebd, add registered model tags table
INFO  [alembic.runtime.migration] Running upgrade 728d730b5ebd -> 27a6a02d2cf1, add model version tags table
INFO  [alembic.runtime.migration] Running upgrade 27a6a02d2cf1 -> 84291f40a231, add run_link to model_version

如果此时再在mlflow 1.4.0的环境下 再执行:

mlflow server \
      --backend-store-uri mysql://root:root@localhost/mlflow \
      --host 0.0.0.0 -p 5002 \
      --default-artifact-root s3://mlflow

就会报错:

2020/11/02 10:25:41 ERROR mlflow.cli: Error initializing backend store
2020/11/02 10:25:41 ERROR mlflow.cli: Detected out-of-date database schema (found version 84291f40a231, but expected 2b4d017a5e9b). Take a backup of your database, then run 'mlflow db upgrade <database_uri>' to migrate your database to the latest schema. NOTE: schema migration may result in database downtime - please consult your database's documentation for more detail.
Traceback (most recent call last):
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/cli.py", line 263, in server
    initialize_backend_stores(backend_store_uri, default_artifact_root)
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/server/handlers.py", line 97, in initialize_backend_stores
    _get_tracking_store(backend_store_uri, default_artifact_root)
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/server/handlers.py", line 83, in _get_tracking_store
    _tracking_store = _tracking_store_registry.get_store(store_uri, artifact_root)
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/tracking/_tracking_service/registry.py", line 37, in get_store
    return builder(store_uri=store_uri, artifact_uri=artifact_uri)
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/server/handlers.py", line 54, in _get_sqlalchemy_store
    return SqlAlchemyStore(store_uri, artifact_uri)
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/store/tracking/sqlalchemy_store.py", line 99, in __init__
    mlflow.store.db.utils._verify_schema(self.engine)
  File "/Users/ljh/opt/miniconda3/envs/mlflow-1.4.0-dev/lib/python3.6/site-packages/mlflow/store/db/utils.py", line 52, in _verify_schema
    "more detail." % (current_rev, head_revision))
mlflow.exceptions.MlflowException: Detected out-of-date database schema (found version 84291f40a231, but expected 2b4d017a5e9b). Take a backup of your database, then run 'mlflow db upgrade <database_uri>' to migrate your database to the latest schema. NOTE: schema migration may result in database downtime - please consult your database's documentation for more detail.

这说明升级成功

此时再在mlflow 1.11.0的conda环境下执行:

 mlflow server \
      --backend-store-uri mysql://root:root@localhost/mlflow \
      --host 0.0.0.0 -p 5003 \
      --default-artifact-root s3://mlflow

就能正常的看到页面,这样mlflow 从1.4.0到1.11.0的升级就完成了

注意事项

如果是线上操作,则先备份数据库,因为该升级不一定能保证升级成功,如升级失败,直接从备份数据库恢复或者参照失败处理进行处理

### VMware vSphere 5.5 升级至特定版本 Upgrade3 的步骤与需求 升级 VMware vSphere 至更高版本或特定补丁版本(如 Upgrade3),通常涉及几个关键阶段,包括准备、验证以及执行实际的升级操作。以下是详细的说明: #### 准备工作 在开始任何升级之前,必须确保环境满足必要的条件并完成准备工作: - **备份现有配置**:始终建议在升级前对当前的 vCenter Server 和 ESXi 主机进行全面备份[^1]。 - **确认兼容性矩阵**:查阅 VMware 官方发布的兼容性列表,以确保目标版本支持现有的硬件和软件组件[^2]。 - **下载所需文件**:访问 VMware 官网获取最新的 ISO 镜像或其他安装包,特别是针对 Upgrade3 版本的具体更新。 #### 执行升级过程 具体的升级流程如下所示: 1. **停止服务** 停止所有依赖的服务实例,例如虚拟化平台上的数据库连接和其他外部应用接口。 2. **部署新版本的 vCenter Server Appliance (VCSA)** 或者就地升级原有服务器实例。如果采用 VCSA 方法,则需按照官方文档逐步迁移数据和服务设置。 3. **更新 ESXi 主机组件** 使用 vSphere Client 或 HTML5 Web Client 登录管理界面,依次选择每台主机进入维护模式后再实施固件刷新或者操作系统层面的修补程序加载作业。 4. **测试功能完整性** 在整个集群范围内重新激活各项业务负载之后,仔细检查各个节点之间的通信状况是否正常运转无误;同时也要关注性能指标是否有异常波动现象发生。 ```bash # 示例命令用于检查ESXi主机状态 esxcli system maintenanceMode set --enable true esxcli software vib update -d /path/to/vibfile.vib ``` 上述脚本展示了如何启用维护模式以及通过 CLI 工具来实现单个物理机器上层结构替换动作的一部分逻辑片段。 --- ### 注意事项 在整个过程中需要注意以下几点重要提示信息: - 如果遇到错误消息,请参照 VMware Knowledge Base 文档寻找解决方案。 - 不要忽略日志记录分析环节的重要性——它可以帮助快速定位潜在问题所在位置. ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值