开发者学堂课程【数据湖 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 工具种类
二、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.Jindo CopyCommitter
基于对象存储系统的Multipart Upload,结合OSS文件系统层面的定制支持,可以实现在保证数据-致性前提下无需Rename操作的Job Committer实现。
3.性能测试
Jindo DistCp 和 Hadoop DistCp 的性能对比,在这个测试中以 HDFS 到 OSS离线数据迁移为主要场景,利用Hadoop自带的测试数据 TestDFSIO 分别生成1000个10M、1000个500M、 1000个1G 大小的文件进行从HDFS拷贝数据到OSS上的测试过程。
4.访问链接:
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)