tencent cloud

对象存储

动态与公告
产品动态
产品公告
产品简介
产品概述
功能概览
应用场景
产品优势
基本概念
地域和访问域名
规格与限制
产品计费
计费概述
计费方式
计费项
免费额度
计费示例
查看和下载账单
欠费说明
常见问题
快速入门
控制台快速入门
COSBrowser 快速入门
用户指南
创建请求
存储桶
对象
数据管理
批量处理
全球加速
监控与告警
运维中心
数据处理
内容审核
智能工具箱
数据工作流
应用集成
工具指南
工具概览
环境安装与配置
COSBrowser 工具
COSCLI 工具
COSCMD 工具
COS Migration 工具
FTP Server 工具
Hadoop 工具
COSDistCp 工具
HDFS TO COS 工具
GooseFS-Lite 工具
在线辅助工具
自助诊断工具
实践教程
概览
访问控制与权限管理
性能优化
使用 AWS S3 SDK 访问 COS
数据容灾备份
域名管理实践
图片处理实践
COS 音视频播放器实践
工作流实践
数据直传
内容审核实践
数据安全
数据校验
大数据实践
COS 成本优化解决方案
在第三方应用中使用 COS
迁移指南
本地数据迁移至 COS
第三方云存储数据迁移至 COS
以 URL 作为源地址的数据迁移至 COS
COS 之间数据迁移
Hadoop 文件系统与 COS 之间的数据迁移
数据湖存储
云原生数据湖
元数据加速
数据加速器 GooseFS
数据处理
数据处理概述
图片处理
媒体处理
内容审核
文件处理
文档处理
故障处理
获取 RequestId 操作指引
通过外网上传文件至 COS 缓慢
访问 COS 时返回403错误码
资源访问异常
POST Object 常见异常
API 文档
简介
公共请求头部
公共响应头部
错误码
请求签名
操作列表
Service 接口
Bucket 接口
Object 接口
批量处理接口
数据处理接口
任务与工作流
内容审核接口
云查毒接口
SDK 文档
SDK 概览
准备工作
Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Flutter SDK
Go SDK
iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
React Native SDK
小程序 SDK
错误码
鸿蒙(Harmony) SDK
终端 SDK 质量优化
安全与合规
数据容灾
数据安全
访问管理
常见问题
热门问题
一般性问题
计费计量问题
域名合规问题
存储桶配置问题
域名和 CDN 问题
文件操作问题
日志监控问题
权限管理问题
数据处理问题
数据安全问题
预签名 URL 问题
SDK 类问题
工具类问题
API 类问题
服务协议
Service Level Agreement
隐私政策
数据处理和安全协议
联系我们
词汇表
文档对象存储迁移指南Hadoop 文件系统与 COS 之间的数据迁移

Hadoop 文件系统与 COS 之间的数据迁移

聚焦模式
字号
最后更新时间: 2024-01-06 10:47:50

简介

Hadoop Distcp(Distributed copy)主要是用于 Hadoop 文件系统内部或之间进行大规模数据复制的工具,它基于 Map/Reduce 实现文件分发、错误处理以及最终的报告生成。由于利用了 Map/Reduce 的并行处理能力,每个 Map 任务负责完成源路径中部分文件的复制,因此它可以充分利用集群资源来快速完成集群或 Hadoop 文件系统之间的大规模数据迁移。
由于 Hadoop-COS 实现了 Hadoop 文件系统的语义,因此利用 Hadoop Distcp 工具可以方便地在对象存储(Cloud Object Storage,COS)与其他 Hadoop 文件系统之间进行双向的数据迁移,本文就以 HDFS 为例,介绍 Hadoop 文件系统与 COS 之间利用 Hadoop Distcp 工具完成数据迁移的方式。

前提条件

1. Hadoop 集群中已经安装 Hadoop-COS 插件,并且正确配置了 COS 的访问密钥等。可使用如下 Hadoop 命令检查 COS 访问是否正常:
hadoop fs -ls cosn://examplebucket-1250000000/
如果能够正确地列出 COS Bucket 中的文件列表,则表示 Hadoop-COS 安装和配置正确,可以进行以下实践步骤。
2. COS 的访问账户必须要具备读写 COS 存储桶中目标路径的权限。
注意
您可以按需授予子账号读写 COS 存储桶内资源的权限,建议按照 最小权限原则子用户授权指南 进行授权,以下几种是常见预设策略:
DataFullControl:数据全读写权限,包含读、写、列出文件列表以及删除操作,建议谨慎授予。
QcloudCOSDataReadOnly:数据只读权限。
QcloudCOSDataWriteOnly:数据只写权限。
如果需要使用自定义监控能力,需要授权腾讯云可观测平台指标上报和读取接口操作权限,请谨慎授予 QcloudMonitorFullAccess或者按需授予 腾讯云可观测平台接口 权限 。

实践步骤

将 HDFS 中的数据复制到 COS 的存储桶中

通过 Hadoop Distcp 将本地 HDFS 集群中/test目录下的文件迁移到 COS 的 hdfs-test-1250000000 存储桶中。

1. 执行如下命令启动迁移:
hadoop distcp hdfs://10.0.0.3:9000/test cosn://hdfs-test-1250000000/
Hadoop Distcp 会启动 MapReduce 作业来执行文件复制任务,完成后会输出简单报表信息,如下图所示:

2. 执行hadoop fs -ls -R cosn://hdfs-test-1250000000/命令可以列出刚才已迁移到存储桶 hdfs-test-1250000000 的目录和文件。


将 COS 中存储桶的文件复制到本地 HDFS 集群

Hadoop Distcp 是一个支持不同集群和文件系统之间复制数据的工具,因此,将 COS 存储桶中的对象路径作为源路径,HDFS 的文件路径作为目标路径即可将 COS 中的数据文件复制到本地 HDFS:
hadoop distcp cosn://hdfs-test-1250000000/test hdfs://10.0.0.3:9000/

指定配置 Distcp 命令行参数进行 HDFS 和 COS 之间的数据迁移

说明
该命令行配置支持双向操作,可支持 HDFS 数据迁移到 COS,也可以将 COS 数据迁移到 HDFS。
用户可直接配置以下命令:
hadoop distcp -Dfs.cosn.impl=org.apache.hadoop.fs.CosFileSystem -Dfs.cosn.bucket.region=ap-XXX -Dfs.cosn.userinfo.secretId=AK**XXX -Dfs.cosn.userinfo.secretKey=XXXX -libjars /home/hadoop/hadoop-cos-2.6.5-shaded.jar cosn://bucketname-appid/test/ hdfs:///test/
参数说明如下:
Dfs.cosn.impl:始终配置为 org.apache.hadoop.fs.CosFileSystem。
Dfs.cosn.bucket.region:填写存储桶所在地域,可在 COS 控制台存储桶列表中查看。
Dfs.cosn.userinfo.secretId:填写存储桶拥有者账号下的 SecretId,可前往 云 API 密钥 中获取。
Dfs.cosn.userinfo.secretKey:填写存储桶拥有者账号下的 secretKey,可前往 云 API 密钥 中获取。
libjars:指定 Hadoop-COS jar 包位置。Hadoop-COS jar 包可前往 Github 仓库 中的 dep 目录下进行下载。
说明
其他参数请参考 Hadoop 工具 文档。

Hadoop distcp 的扩展参数

Hadoop distcp 工具支持丰富的运行参数。例如,可以通过-m来指定最大用于并行复制的 Map 任务数目,-bandwidth来限制每个 map 所使用的最大带宽等。具体可参考 Apache Hadoop distcp 工具的官方文档:DistCp Guide

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈