
# 恢复Hive业务数据
#### 操作场景
在用户意外修改、删除或需要找回数据时，系统管理员对Hive进行重大操作（如升级、重大数据调整等）后，系统数据出现异常或未达到预期结果，模块全部故障无法使用，或者迁移数据到新集群的场景中，需要对Hive进行恢复数据操作。
用户可以通过FusionInsight Manager创建恢复Hive业务数据任务，系统仅支持手动进行数据恢复。
MRS集群支持多种数据路径类型恢复Hive业务数据：
- RemoteHDFS：表示从备集群的HDFS目录恢复数据。
- NFS：表示通过NFS协议从NAS中恢复数据。
- CIFS：表示通过CIFS协议从NAS中恢复数据。
- SFTP：表示通过SFTP协议从服务器中恢复数据。
- OBS：表示从OBS中恢复数据。
Hive备份恢复功能不支持识别用户的Hive表、索引、视图等对象在业务和结构上存在的关联关系。用户在执行备份恢复任务时，需要根据业务场景管理统一的恢复点，防止影响业务正常运行。
![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/note_3.0-zh-cn.png)
当业务正常时需要恢复数据，建议手动备份最新管理数据后，再执行恢复数据操作。否则会丢失从备份时刻到恢复时刻之间的Hive数据。
#### 约束与限制
- 只支持进行数据备份时的系统版本与当前系统版本一致时的数据恢复。
- MRS 3.5.0及之后版本，支持从OBS中恢复数据。
- MRS 3.6.0-LTS.1及之后版本，创建Hive恢复任务时，不支持对库与库下的表同时进行恢复，防止重复拷贝。
 
#### 对系统的影响
- 恢复过程中会停止用户认证，用户无法开始新的连接。
- 数据恢复后，会丢失从备份时刻到恢复时刻之间的数据。
- 数据恢复后，需要重新启动Hive的上层应用。
 
#### 前提条件
- 如果需要从远端HDFS恢复数据，需要准备备集群，且已完成数据备份，详细操作请参见[备份Hive业务数据](https://support.huaweicloud.com/usermanual-mrs/admin_guide_000210.html)。如果主集群部署为安全模式，且主备集群不是由同一个FusionInsight Manager管理，则必须配置系统互信，请参见[配置MRS集群间互信](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0354.html)。如果主集群部署为普通模式，则不需要配置互信。

- 主备集群必须已配置跨集群拷贝，请参见[启用MRS集群间拷贝功能](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300047.html)。
- 主备集群上的时间必须一致，而且主备集群上的NTP服务必须使用同一个时间源。
- 规划好恢复数据保存表的数据库，数据表在HDFS的保存位置，以及访问恢复数据的用户清单。
- 检查Hive备份文件保存路径。
- 停止Hive的上层应用。
 
#### 恢复Hive业务数据
1. 登录MRS集群Manager界面。 
   登录集群Manager界面请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"运维 \> 备份恢复 \> 备份管理"。
3. 在任务列表指定任务的"操作"列，选择"更多 \> 查询历史"，打开备份任务执行历史记录。 
   在弹出的窗口中，在指定一次执行成功记录的"备份路径"列，单击"查看"，打开此次任务执行的备份路径信息，查找以下信息：
   - "备份对象"表示备份的数据源。
   
   - "备份路径"表示备份文件保存的完整路径。 选择正确的项目，在"备份路径"手工选中备份文件的完整路径并复制。
     
   
   
   
   
4. 选择"运维 \> 备份恢复 \> 恢复管理"。
5. 单击"创建"。
6. 在"任务名称"填写恢复任务的名称。
7. 在"恢复对象"选择待操作的集群。
8. 在"恢复配置"，勾选"Hive"。
9. 在"Hive"的"路径类型"，选择一个备份目录的类型。 
   表1恢复数据 
   | 类型                     | 配置参数             | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|:---|
   | RemoteHDFS             | 源端NameService名称  | 备份数据集群的NameService名称。 - 可以输入集群内置的远端集群的NameService名称：haclusterX，haclusterX1，haclusterX2，haclusterX3，haclusterX4。  - 也可以输入其他已配置的远端集群NameService名称。   |
   | RemoteHDFS             | IP 模式            | 目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式，如IPv4或者IPv6。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | RemoteHDFS             | 源端NameNode IP地址  | 备集群NameNode业务平面IP地址，支持主节点或备节点。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | RemoteHDFS             | 源端路径             | 备集群保存备份数据的完整HDFS路径。例如，"*备份路径* */* *备份任务名_* *数据源_* *任务创建时间/* *版本号_* *数据源_* *任务执行时间.tar.gz*"。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | RemoteHDFS             | 队列名称             | 备份任务执行时使用的YARN队列的名称。需和集群中已存在且状态正常的队列名称相同。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | RemoteHDFS             | 恢复点列表            | 单击"刷新"，然后选择一个备集群上已备份的Hive备份文件集。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | RemoteHDFS             | 目标NameService名称  | 备份目录对应的目标NameService名称。默认值为"hacluster"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | RemoteHDFS             | 最大map数           | 执行MapReduce任务的最大map数，默认值为"20"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | RemoteHDFS             | 单个map的最大带宽(MB/s) | 单个map最大带宽，默认值为"100"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | NFS                    | IP 模式            | 目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式，如IPv4或者IPv6。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | NFS                    | 服务器IP地址          | NAS服务器IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | NFS                    | 源端路径             | 备份文件在NAS服务器中保存的完整路径。例如，"*备份路径* */* *备份任务名_* *数据源_* *任务创建时间/* *版本号_* *数据源_* *任务执行时间.tar.gz*"。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | NFS                    | 队列名称             | 备份任务执行时使用的YARN队列的名称。需和集群中已存在且状态正常的队列名称相同。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | NFS                    | 恢复点列表            | 单击"刷新"，然后选择一个备集群上已备份的Hive备份文件集。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | NFS                    | 目标NameService名称  | 备份目录对应的目标NameService名称。默认值为"hacluster"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | NFS                    | 最大map数           | 执行MapReduce任务的最大map数，默认值为"20"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | NFS                    | 单个map的最大带宽(MB/s) | 单个map最大带宽，默认值为"100"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | CIFS                   | IP 模式            | 目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式，如IPv4或者IPv6。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | CIFS                   | 服务器IP地址          | NAS服务器IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | CIFS                   | 端口号              | CIFS协议连接NAS服务器使用的端口号，默认值为"445"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | CIFS                   | 用户名              | 配置CIFS协议时设置的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | CIFS                   | 密码               | 配置CIFS协议时设置的密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | CIFS                   | 源端路径             | 备份文件在NAS服务器中保存的完整路径。例如，"*备份路径* */* *备份任务名_* *数据源_* *任务创建时间/* *版本号_* *数据源_* *任务执行时间.tar.gz*"。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | CIFS                   | 队列名称             | 备份任务执行时使用的YARN队列的名称。需和集群中已存在且状态正常的队列名称相同。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | CIFS                   | 恢复点列表            | 单击"刷新"，然后选择一个备集群上已备份的Hive备份文件集。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | CIFS                   | 目标NameService名称  | 备份目录对应的目标NameService名称。默认值为"hacluster"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | CIFS                   | 最大map数           | 执行MapReduce任务的最大map数，默认值为"20"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | CIFS                   | 单个map的最大带宽(MB/s) | 单个map最大带宽，默认值为"100"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | SFTP                   | IP 模式            | 目标IP的IP地址模式。系统会根据集群网络类型自动选择对应的IP模式，如IPv4或者IPv6。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | SFTP                   | 服务器IP地址          | 备份数据的服务器IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | SFTP                   | 端口号              | SFTP协议连接备份服务器使用的端口号，默认值为"22"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | SFTP                   | 用户名              | 使用SFTP协议连接服务器时的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | SFTP                   | 密码               | 使用SFTP协议连接服务器时的密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | SFTP                   | 源端路径             | 备份文件在备份服务器中保存的完整路径。例如，"*备份路径* */* *备份任务名_* *数据源_* *任务创建时间/* *版本号_* *数据源_* *任务执行时间.tar.gz*"。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | SFTP                   | 队列名称             | 备份任务执行时使用的YARN队列的名称。需和集群中已存在且状态正常的队列名称相同。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | SFTP                   | 恢复点列表            | 单击"刷新"，然后选择一个备集群上已备份的Hive备份文件集。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | SFTP                   | 目标NameService名称  | 备份目录对应的目标NameService名称。默认值为"hacluster"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | SFTP                   | 最大map数           | 执行MapReduce任务的最大map数，默认值为"20"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | SFTP                   | 单个map的最大带宽(MB/s) | 单个map最大带宽，默认值为"100"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | OBS（仅MRS 3.5.0及之后版本支持） | 源端路径             | 填写备份文件在OBS中保存的完整路径。例如，"*备份路径* */* *备份任务名_* *数据源_* *任务创建时间/* *版本号_* *数据源_* *任务执行时间.tar.gz*"。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | OBS（仅MRS 3.5.0及之后版本支持） | 队列名称             | 备份任务执行时使用的YARN队列的名称。需和集群中已存在且状态正常的队列名称相同。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | OBS（仅MRS 3.5.0及之后版本支持） | 恢复点列表            | 单击"刷新"，然后选择一个已备份的OBS目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | OBS（仅MRS 3.5.0及之后版本支持） | 目标NameService名称  | 备份目录对应的目标NameService名称。默认值为"hacluster"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | OBS（仅MRS 3.5.0及之后版本支持） | 最大map数           | 执行MapReduce任务的最大map数，默认值为"20"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | OBS（仅MRS 3.5.0及之后版本支持） | 单个map的最大带宽(MB/s) | 单个map最大带宽，默认值为"100"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
      
   
   
10. 在"数据配置"的"数据选择"中，根据业务需要勾选一个或多个需要恢复的已备份数据，并分别在"目标数据库"和"目标路径"列，指定备份数据恢复后的数据库和文件保存位置。 
    配置约束：
    - 支持恢复到原数据库，但数据表保存在一个与目的端路径不同的新路径。
    
    - 如果恢复Hive的索引表，请同时选择恢复索引表对应的Hive数据表。
    
    - 如果为了防止影响当前数据，选择了新的恢复目录，那么新目录需要手动授予HDFS权限，使对备份表拥有权限的用户可以访问此目录。
    
    - 支持恢复到其他数据库。如果恢复到其他数据库，那么此数据库对应在HDFS中的目录，需要手动授予HDFS权限，使对备份表拥有权限的用户可以访问此目录。
    
    
    
    
11. 在"强制覆盖"选择"true"，表示存在同名数据表时强制恢复备份的所有数据，如果数据表中存在备份后新增加的数据，那恢复后将丢失这些数据。选择"false"表示存在同名表时不执行恢复任务。
12. 单击"校验"查看恢复任务的配置是否正确。 
    - 如果队列名称不正确，校验失败。
    
    - 如果不存在指定的恢复目录，校验失败。
    
    - 如果不满足强制覆盖的条件，校验失败。
    
    
    
    
13. 单击"确定"保存。
14. 在恢复任务列表已创建任务的"操作"列，单击"执行"，开始执行恢复任务。 
    - 恢复成功后进度显示为绿色。
    
    - 恢复成功后此恢复任务不支持再次执行。
    
    - 如果恢复任务在第一次执行时由于某些原因未执行成功，在排除错误原因后单击"重试"，重试恢复任务。
    
    
    
    
 
