数据湖实操讲解【数据迁移】第一讲:高效迁移 HDFS 海量文件到 OSS

简介: 数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~

本期导读 :【数据迁移】第一讲

主题:高效迁移 HDFS 海量文件到 OSS
讲师:扬礼,阿里巴巴计算平台事业部 EMR 开发工程师
主要内容:
  • DistCp 介绍
  • Jindo DistCp 介绍
  • 性能优化
  • 功能演示
直播回放链接:

https://developer.aliyun.com/live/246728

背景介绍

为了让更多开发者了解并使用 JindoFS+OSS,由阿里云JindoFS+OSS 团队打造的专业公开课【数据湖JindoFS+OSS 实操干货36讲】在每周二16:00 准时直播开讲!扫描文章底部二维码,进钉钉群不错过每次直播信息!

内容概述

什么是 DistCp?

DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。它使用 Map/Reduce 实现文件分发,错误处理和恢复,以及报告生成。它把文件和目录的列表作为 map 任务的输入,每个任务会完成源列表中部分文件的拷贝。

DistCp 工具种类

1.png

Jindo DistCp 介绍
  • 分布式文件拷贝工具,基于 MapReduce
  • 支持多种数据源(HDFS / OSS / S3 / COS 等)
  • 多种拷贝策略,功能对齐开源 Hadoop DistCp 及 S3 DistCp 等
  • 深度结合 OSS,基于 native 实现的 JindoFS SDK
  • 优化 JobCommitter,性能领先开源工具
现有 HDFS海量文件同步到 OSS 存在的问题
  • 文件数量规模大,百/千万级,开源 DistCp 超时/OOM 等
  • HDFS 拷贝到 OSS ,效率较慢,Rename 耗时
  • 现有开源工具无法保证数据拷贝一致性
  • 不支持传输时进行归档/冷存储等 OSS 特性
Jindo DistCp 基于 HDFS 海量文件同步到 OSS 场景优化
  • 分批 Batch,避免文件数过多/文件size过大,造成超时/OOM
  • 定制化 CopyCommitter,实现 No-Rename 拷贝,并保证数据拷贝落地的一致性
  • 大/小文件传输策略优化
  • 基于 native 实现的 JindoFS SDK,优化读写 OSS 性能
性能优化:CopyCommitter – NoRename 拷贝
1、MapReduce JobCommitter

2.png

2、Jindo CopyCommitter

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

性能测试

我们做了一个 Jindo DistCp 和 Hadoop DistCp的性能对比,在这个测试中我们以 HDFS 到 OSS 离线数据迁移为主要场景,利用Hadoop 自带的测试数据集 TestDFSIO 分别生成1000个10M、1000个500M、1000个1G 大小的文件进行从 HDFS 拷贝数据到 OSS 上的测试过程。
4.png

Github链接:

https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md

浏览器打开Github链接,点击对应使用场景,进行具体实践。
5.png

实例演示
  • 在Github中下载 jindo-distcp-3.5.0.jar
  • 将 jar 包拷贝到可提交 YARN 作业的节点上
  • 选择 src 和 dest 路径及合适的参数
  • hadoop jar jindo-distcp-3.5.0.jar --src /data --dest oss://yang-ha/data --parallelism 10
  • 执行命令
  • 查看进度(命令行/WebUI)

直接观看视频回放,获取实例讲解~https://developer.aliyun.com/live/246728


不错过每次直播信息、探讨更多数据湖 JindoFS+OSS 相关技术问题,欢迎扫码加入钉钉交流群!

新建项目 (6).jpg

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
882 1
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
8天前
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
41 11
|
8天前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
38 9
|
24天前
|
存储 Cloud Native Serverless
云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
|
1月前
|
分布式计算 DataWorks 关系型数据库
DataWorks报错问题之使用oss读取csv文件至odps 报错如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
3月前
|
存储 分布式计算 Hadoop
HDFS如何处理大文件和小文件的存储和访问?
HDFS如何处理大文件和小文件的存储和访问?
48 0
|
3月前
|
存储 对象存储 SQL
【获奖名单公示】Hologres实时湖仓分析挑战赛
5分钟快速使用Hologres实时湖仓能力,无需移动数据,直接加速读取存储于数据湖OSS上的Hudi、Delta、Paimon等格式类型的数据
【获奖名单公示】Hologres实时湖仓分析挑战赛
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
40 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
206 0