
# 批量升级MRS集群客户端
在FusionInsight Manager界面上下载的客户端包中包含客户端批量升级工具，当集群升级或扩容后需要对多个客户端进行升级时，可以使用该工具对客户端进行批量一键升级。同时该工具在提供批量升级客户端功能的同时，也提供了轻量级的批量刷新客户端所在节点"/etc/hosts"文件的功能。
#### 约束与限制
本章节仅适用于MRS 3.x及以后版本。
 #### 批量升级前准备
1. 登录MRS集群Manager界面。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 概览 \> 更多 \> 下载客户端"（MRS 3.3.0及之后版本在"主页"选择"下载客户端"），下载完整客户端到服务端指定目录。 
   具体操作请参考[安装MRS集群客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_24212.html)。
   解压新下载的客户端，在解压后的目录找到batch_upgrade目录，例如"/tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_ClientConfig/batch_upgrade"。
   
   
3. 选择"集群 \> 客户端管理"，进入客户端管理界面，单击"导出全部"，将所选的客户端信息导出到本地。
4. 解压导出的客户端信息，将client-info.cfg文件上传到客户端解压目录的batch_upgrade目录下。
5. 参考以下操作，补全"client-info.cfg"中缺失的密码。 
   执行以下命令，添加用户密码信息。
   ```
   vi client-info.cfg
   ```
   例如：
   ```
   clientIp,clientPath,user,password
   10.10.10.100,/home/omm/client /home/omm/client2,omm,密码
   ```
   配置文件各字段含义如下：
   - clientIp：表示客户端所在节点IP地址。
   
   - clientPath：客户端安装路径，可以包含多个路径，以空格分隔多个路径。注意路径不要以"/"结尾。
   
   - user：节点用户名。
   
   - password：节点用户密码信息。
   
   
   如果执行失败，请在执行目录的**work_space/log** _*XXX* 下查看**node.log**日志。
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   配置文件中包含认证密码信息可能存在安全风险，建议当前场景执行完毕后删除相关配置文件或加强安全管理。
   
   
 
#### 批量升级MRS集群客户端
1. 以待安装客户端的用户登录客户端下载节点。
2. 执行以下命令进行升级。 
   ```
   sh client_batch_upgrade.sh -u -f /tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_Client.tar -g /tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_ClientConfig/batch_upgrade/client-info.cfg
   ```
   ![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   由于配置了密码信息，执行完升级后建议尽快删除**client-info.cfg**文件。
   
   
3. 升级执行完成后确认结果。确保客户端升级无误后执行以下命令确认升级结果。 
   ```
   sh client_batch_upgrade.sh -c
   ```
   
   
4. 如果客户端升级后存在问题，可以执行以下命令回滚客户端。 
   ```
   sh client_batch_upgrade.sh -s
   ```
   - 客户端批量升级工具本身是将原客户端move至备份目录，然后再使用**-f** 参数指定的客户端包再次安装客户端。因此若原客户端中有定制的内容，请在执行**-c** 命令之前，将定制的内容从备份目录手动保存或者移至升级后的客户端目录。
     客户端备份路径为：*{原客户端路径}*-backup。
     
   
   - 参数**-u** 是**-c** 和**-s** 的前提，必须在**-u** 命令执行了升级之后，才能选择是要执行**-c** 进行提交还是**-s**进行回滚。
   
   - 升级命令（**-u**）可以多次执行，每次执行只升级前面升级失败的客户端，跳过升级成功的客户端。
   
   - 客户端批量升级工具也支持升级之前的旧客户端。
   
   - 执行非root用户安装的客户端升级时，请确保相应用户在目标节点客户端所在目录及父目录的读写权限，否则会升级失败。
   
   - **-f**参数输入的客户端包必须为全量客户端，不支持单组件或部分组件客户端包作为输入。
   
   
   
   
 
#### 批量刷新hosts文件
1. 执行[批量升级前准备]操作。
2. 检查需要更新"/etc/hosts"文件的节点的配置用户是否为"root"。 
   - 是，执行[步骤 3]。
   
   - 否，更改配置用户为"root"，再执行[步骤 3]。
   
   
   
   
3. 执行以下命令，批量刷新客户端所在节点的"/etc/hosts"文件。
   
   ```
   sh client_batch_upgrade.sh -r -f /tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_Client.tar -g /tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_ClientConfig/batch_upgrade/client-info.cfg
   ```
   - 执行批量刷新"/etc/hosts"文件时，输入的客户端包可以是完整客户端，也可以是仅包含配置文件的客户端软件包，推荐使用仅包含配置文件的客户端软件包。
   
   - 需要更新"/etc/hosts"文件的主机所配置的用户必须为**root**用户，否则会刷新失败。
   
   
   
   
 
