高效迁移 HDFS 海量文件到 OSS | 学习笔记

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 快速学习高效迁移 HDFS 海量文件到 OSS。

开发者学堂课程【数据湖 JindoFS + OSS 实操干货36讲高效迁移 HDFS 海量文件到 OSS】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/833/detail/13961


高效迁移 HDFS 海量文件到 OSS

 

内容介绍

一、DistCp 介绍

二、Jindo DistCp 介绍

三、性能优化

四、功能演示

 

一、DistCp 介绍

1.DistCp 的概念

DistCp (分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。它使用Map/Reduce 实现文件分发,错误处理和恢复,以及报告生成。

它把文件和目录的列表作为 map 任务的输入,每个任务会完成源列表中部分文件的拷贝。

 

2.DistCp 工具种类1.png


二、Jindo DistCp 介绍

1.Jindo DistCp 介绍

➢分布式文件拷贝工具,基于 MapReduce

➢支持多种数据源(HDFS/ OSS/ S3/ COS )

➢多种拷贝策略,功能对齐开源 Hadoop DistCp S3 DistCp

➢深度结合 OSS,基于 native 实现的 JindoFS SDK

➢优化 JobCommitter,性能领先开源工具

2.现有 HDFS 海量文件同步到 OSS 问题

➢文件数量规模大,百/千万级,开源 DistCp 超时/OOM

HDFS 拷贝到 OSS,效率较慢,Rename耗时

➢现有开源工具无法保证数据拷贝一致性

➢不支持传输时进行归档/冷存储等 OSS 特性

3.Jindo DistCp基于HDFS海量文件同步到 OSS 场景优化

➢分批 Batch,避免文件数过多/文件 size 过 大,造成超时/OOM

➢定制化 CopyCommitter,实现 No Rename 拷贝,并保证数据拷贝落地的-致性

➢大/小文件传输策略优化

➢基于 native 实现的 JindoFS SDK,优化读写 OSS 性能

 

三、性能优化:CopyCommitter - NoRename 拷贝

1.MapReduce JobCommitter

2.png2.Jindo CopyCommitter

基于对象存储系统的Multipart Upload,结合OSS文件系统层面的定制支持,可以实现在保证数据-致性前提下无需Rename操作的Job Committer实现。

3.png3.性能测试

Jindo DistCp Hadoop DistCp 的性能对比,在这个测试中以 HDFS OSS离线数据迁移为主要场景,利用Hadoop自带的测试数据 TestDFSIO 分别生成100010M1000500M 10001G 大小的文件进行从HDFS拷贝数据到OSS上的测试过程。

4.png4.访问链接:

httos://qithub.com/aliyun/alibabacloud-jindofs/blob/master/docs/indo distcp/indo distcp overview.md


四、功能演示

1.下载j indo-distcp-3.5.0.jar

2.jar 包拷贝到可提交 YARN 作业的节点上

3.选择 src dest 路径及合适的参数

hadoop jar jindo-distcp-3.5.0.jar - -src /data --dest ss://yang-ha/data --parallelism 10

4.执行命令

5.查看进度(命令行 WebUI)

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
456 34
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
172 3
|
分布式计算 Java Hadoop
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(一)
231 2
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
239 1
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
378 1
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
1444 70
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
830 6
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
252 3
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
338 5
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
216 4