更新时间:2023-03-17 GMT+08:00

HDFS数据

打通数据传输通道

  • 当源集群与目标集群部署在同一区域的不同VPC时,请创建两个VPC之间的网络连接,打通网络层面的数据传输通道。请参见“虚拟私有云 VPC > 用户指南> VPC对等连接”
  • 当源集群与目标集群部署在同一VPC但属于不同安全组时,在VPC管理控制台,为每个安全组分别添加安全组规则。规则的“协议”为“ANY”,“方向”为“入方向”,“源地址”为“安全组”且是对端集群的安全组。
    • 为源集群的安全组添加入方向规则,源地址选择目标集群的安全组。
    • 为目标集群的安全组添加入方向规则,源地址选择源集群的安全组。
  • 当源集群与目标集群部署在同一VPC同一安全组且两个集群都开启了Kerberos认证,请参考配置跨集群互信章节为两个集群配置互信。

HDFS数据备份

根据源集群与目标集群分别所处的区域及网络连通性,可分为以下几种数据备份场景:

  • 同Region

    当源集群与目标集群处于同一Region时,打通网络传输通道。使用Distcp工具执行如下命令将源集群的HDFS、HBase、Hive数据文件以及Hive元数据备份文件拷贝至目的集群。

    $HADOOP_HOME/bin/hadoop distcp <src> <dist> -p

    其中,各参数的含义如下。

    • $HADOOP_HOME:目的集群Hadoop客户端安装目录
    • <src>:源集群HDFS目录
    • <dist>:目的集群HDFS目录
  • 不同Region

    当源集群与目标集群处于不同Region时,用Distcp工具将源集群数据拷贝到OBS,借助OBS跨区域复制功能(请参见“对象存储服务 OBS > 控制台指南 > 跨区域复制”)将数据复制到对应目的集群所在Region的OBS,然后通过Distcp工具将OBS数据拷贝到目的集群的HDFS上。由于执行Distcp无法为OBS上的文件设置权限、属主/组等信息,因此当前场景在进行数据导出时也需要将HDFS的元数据信息进行导出并拷贝,以防HDFS文件属性信息丢失。

  • 线下集群向云迁移

    线下集群可以通过如下方式将数据迁移至云:

    • 云专线(DC)

      为源集群与目标集群之间建立云专线,打通线下集群出口网关与线上VPC之间的网络,然后参考同Region执行Distcp进行拷贝。

HDFS元数据备份

HDFS数据需要导出的元数据信息包括文件及文件夹的权限和属主/组信息。可通过如下HDFS客户端命令导出。

$HADOOP_HOME/bin/hdfs dfs –ls –R <migrating_path> > /tmp/hdfs_meta.txt

其中,各参数的含义如下。

  • $HADOOP_HOME:源集群Hadoop客户端安装目录
  • <migrating_path>:HDFS上待迁移的数据目录
  • /tmp/hdfs_meta.txt:导出的元数据信息保存在本地的路径。

如果源集群与目标集群网络互通,且以MRS集群管理员身份运行hadoop distcp命令进行数据拷贝,可以添加参数“-p”让distcp在拷贝数据的同时在目标集群上分别恢复相应文件的元数据信息。因此在这种场景下可直接跳过本步骤。

HDFS文件属性恢复

根据导出的权限信息在目的集群的后台使用HDFS命令对文件的权限及属主/组信息进行恢复。

$HADOOP_HOME/bin/hdfs dfs –chmod <MODE> <path>
$HADOOP_HOME/bin/hdfs dfs –chown <OWNER> <path>