有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
如果您需要将自有 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。


3. 同账户内私有网络进行连接,新建后对等连接立即生效;与其它账户私有网络创建对等连接,需要对端接受此对等连接后生效。参见 同账号创建对等连接通信跨账号创建对等连接通信
4. 为对等连接配置本端和对端路由表。
登录 私有网络控制台 ,单击左侧目录中的子网,进入管理页面。单击对等连接本端指定子网(例如广州的子网 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。