tencent cloud

文档反馈

HDFS 通过 DistCp 数据迁移实践

最后更新时间:2023-07-14 10:57:58

    如果您需要将自有 HDFS 的原始数据迁移至腾讯云 EMR,可以通过两种方式进行数据迁移,第一种是通过腾讯云对象存储(COS)进行数据中转迁移,第二种是通过 Hadoop 自带文件迁移工具 DistCp 进行数据迁移。本文主要介绍通过 DistCp 进行数据迁移。

    DistCp(distributed copy)是 Hadoop 自带的文件迁移工具。它使用 MapReduce 来实现其分发、错误处理和恢复、报告的功能。它将文件和目录的列表扩展为映射任务的输入,每个任务将复制源列表中指定的文件的分区。使用 DistCp 需要实现自建集群和 EMR 集群的网络互通。
    使用 DistCP 数据迁移步骤如下:

    步骤1:网络打通

    本地自建 HDFS 文件迁移到 EMR

    本地自建 HDFS 文件迁移到 EMR 集群需要有专线打通网络,可以联系开发人员协助解决。

    CVM 上的自建 HDFS 文件迁移到 EMR

    • CVM 的所属网络和 EMR 集群的所属网络在同一 VPC 下,则可以自由传送文件。
    • CVM 的所属网络和 EMR 集群的所属网络在不同 VPC 下,需要使用对等连接将网络打通。

    使用对等连接

    网段1:广州的 VPC1 中的子网 A 192.168.1.0/24。
    网段2:北京的 VPC2 中的子网 B 10.0.1.0/24。

    1. 登录 私有网络控制台-对等连接,在列表上方选择地域广州,选择私有网络 VPC1,然后单击**+新建**。
    2. 进入建立对等连接页。
    • 名称:对等连接的名称,例如 PeerConn。
    • 本端地域:填写本地端地域,例如广州。
    • 本端网络:填写本端网络,例如 VPC1。
    • 对端账户类型:填写对端网络所属账户,如果广州和北京两个网络在同一账户下,选择我的账户,如果不在同一账户,则要选择其它账户
      说明:

      如果本端网络和对端网络都在同一地域,例如广州,通信是免费的,也不需要选择带宽上线;如果不在同一地域,就要进行收费,同时带宽上限可选。

    • 对端地域:填写对端地域,例如北京。
    • 对端网络:填写对端网络,例如 VPC2。
    1. 同账户内私有网络进行连接,新建后对等连接立即生效;与其它账户私有网络创建对等连接,需要对端接受此对等连接后生效。参见 同账号创建对等连接通信跨账号创建对等连接通信
    2. 为对等连接配置本端和对端路由表。
    • 登录 私有网络控制台 ,单击左侧目录中的子网,进入管理页面。单击对等连接本端指定子网(例如广州的子网 VPC1)的关联路由表 ID,进入路由表详情页。
    • 单击**+新增路由策略**。
    • 目的端中填入对端 CIDR(例如北京的 VPC2 的 CIDR 是10.0.1.0/24),下一跳类型选择对等连接,下一跳选择已建立的对等连接(PeerConn)。
    • 以上步骤是配置广州 VPC1 到北京 VPC2 的路由表,还需要配置北京 VPC2 到广州 VPC1 的配置,配置过程同上。
    • 路由表配置完成后,不同私有网络的网段之间即可进行通信。

    步骤2:执行拷贝

    # 集群间的拷贝,将一个文件夹拷贝到另一个集群
    hadoop distcp hdfs://nn1:9820/foo/bar hdfs://nn2:9820/bar/foo
    
    # 指定文件拷贝
    hadoop distcp hdfs://nn1:9820/foo/a hdfs://nn1:9820/foo/b hdfs://nn2:9820/bar/foo
    
    # 如果指定的文件太多,可使用 -f 参数。
    
    注意:

    • 对于上述命令,必须要求源和目的版本相同。
    • 如果另一个客户端仍然在写入源文件,则该拷贝可能会失败;如果一个文件正在被拷贝到目的端,试图重写该文件的操作会失败;如果源文件在被复制之前被移动,那么拷贝将失败,报错信息为 FileNotFoundException。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持