如何在AWS上更新Flow所用的H2O版本(基于Marketplace AMI)
解决AWS Marketplace H2O AMI版本自动回滚的升级方案
我之前也碰到过AWS Marketplace里的H2O AMI升级后自动回滚的问题,根源在于这类AMI通常自带了自动拉起旧版本的服务或脚本,按下面的步骤操作就能彻底完成升级,不会再自动恢复到3.14版本:
1. 先停止并禁用旧版本的自动运行机制
AWS Marketplace的H2O镜像一般会把旧版本设为开机自启服务,这是升级后自动回滚的核心原因:
- 先杀掉正在运行的H2O进程:
- 查找H2O进程ID:
ps aux | grep h2o - 强制终止进程:
kill -9 <找到的PID>
- 查找H2O进程ID:
- 检查并禁用系统服务:
- 如果是systemd系统(大部分现代AMI):
- 查看H2O相关服务:
systemctl list-unit-files | grep h2o - 停止服务:
sudo systemctl stop h2o - 禁用开机自启:
sudo systemctl disable h2o
- 查看H2O相关服务:
- 如果是老旧的init.d系统:
- 停止服务:
sudo service h2o stop - 移除开机自启配置:
sudo update-rc.d h2o remove
- 停止服务:
- 如果是systemd系统(大部分现代AMI):
2. 彻底清理旧版本的H2O文件
之前的pip卸载可能没清理干净镜像里预安装的旧文件,需要手动删除:
- 用pip完全卸载旧版本:
pip uninstall -y h2o(如果用的是Python3,换成pip3) - 找到并删除H2O的预安装目录(常见路径是
/opt/h2o或/usr/local/h2o):- 查找路径:
find / -name "h2o" -type d | grep -v "virtualenv"(排除虚拟环境路径) - 删除目录:
sudo rm -rf <找到的目录路径>
- 查找路径:
- 删除残留的配置文件:
sudo rm -rf /etc/h2o(如果存在的话)
3. 安装最新稳定版H2O
现在可以安全安装最新版本了:
- 先升级pip确保兼容性:
pip install --upgrade pip - 安装最新稳定版(会自动拉取当前最新的官方稳定版):
pip install h2o- 如果需要指定具体版本,比如3.46.0.2,就用:
pip install h2o==3.46.0.2
- 如果需要指定具体版本,比如3.46.0.2,就用:
4. 配置新版H2O开机自启(可选,方便同事使用)
如果需要保持开机自动启动Flow服务,重新配置一个systemd服务:
- 创建服务文件:
sudo nano /etc/systemd/system/h2o.service,粘贴以下内容(注意替换用户和内存配置):
[Unit] Description=H2O AI Platform (Latest Stable Version) After=network.target [Service] User=ubuntu # 根据你的AMI用户调整,比如ec2-user ExecStart=/usr/local/bin/h2o start -jvm-opts "-Xmx16g" # 用`which h2o`确认路径,-Xmx按需设置内存 Restart=always [Install] WantedBy=multi-user.target
- 保存退出后,重新加载systemd:
sudo systemctl daemon-reload - 启动新版服务:
sudo systemctl start h2o - 设置开机自启:
sudo systemctl enable h2o
5. 验证升级成功
- 打开浏览器访问Flow:
http://<你的实例公网IP>:54321,查看页面右上角的版本号,确认是最新稳定版 - 或者在命令行运行:
h2o version,检查输出的版本信息是否正确
内容的提问来源于stack exchange,提问作者Chris Hawkins
相关产品推荐
相关产品推荐

