JindoDistCp数据湖离线数据迁移最佳实践

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: JindoDistCp是阿里云E-MapReduce团队开发的大规模集群内部和集群之间分布式文件拷贝的工具

数据湖就像是一个“大水池”,是一种把各类异构数据进行集中存储的架构。数据湖是一种存储架构,在阿里云上可以利用OSS对象存储,来当数据湖的地基。企业基于阿里云服务,可以快速挖出一个适合自己的"湖",而且这个"湖"根据需求,可大可小,按"注水量"付费。在挖好这个"湖"后,重要的步骤就是如何把各种异构数据注入到湖里。在传统的大数据领域用户经常使用HDFS作为异构数据的底层存储来储存大量的数据,其中大部分可通过离线数据迁移来注入到以OSS作为底层存储的数据湖中。在进行数据迁移、数据拷贝的场景中,大家选择最常用的离线数据迁移工具是Hadoop自带的DistCp工具,但是它不能很好利用对象存储系统如OSS的特性,导致效率低下并且不能最终保证一致性,提供的功能选项也比较简单,不能很好的满足用户的需求。此时一个高效、功能丰富的离线数据迁移工具成为影响离线数据入湖效率的重要因素。

随着阿里云JindoFS SDK的全面放开使用,基于JindoFS SDK的数据湖离线数据迁移利器JindoDistCp现在也全面面向用户开放使用。JindoDistCp是阿里云E-MapReduce团队开发的大规模集群内部和集群之间分布式文件拷贝的工具。 它使用MapReduce实现文件分发,错误处理和恢复,把文件和目录的列表作为map/reduce任务的输入,每个任务会完成源列表中部分文件的拷贝。目前全面支持HDFS/S3/OSS之间的数据拷贝场景,提供多种个性化拷贝参数和多种拷贝策略。重点优化从HDFS和S3到数据湖底座OSS的数据拷贝场景,通过定制化CopyCommitter,实现No-Rename拷贝,并保证数据拷贝落地的一致性。功能覆盖S3DistCp和HadoopDistCp的功能,性能较HadoopDistCp有较大提升,目标提供高效、稳定、安全的数据湖离线数据迁移工具。本文主要介绍如何使用JindoDistCp来进行基本离线数据迁移,以及如何在不同场景下提高离线数据迁移性能。值得一提的是,此前JindoDistCp 仅限于E-MapReduce产品内部使用,此次全方位面向整个阿里云OSS/HDFS用户放开,并提供官方维护和支持技术,欢迎广大用户集成和使用。

11.png

HadoopDistCp

HadoopDistCp是Hadoop集成的分布式数据迁移工具,提供了基本文件拷贝、覆盖拷贝、指定map并行度、log输出路径等功能。在Hadoop2x上对DistCp进行了部分优化例如拷贝策略的选择,默认使用 uniformsize(每个 map 会平衡文件大小)如果指定 dynamic,则会使用 DynamicInputFormat。这些功能优化了普通hdfs间数据拷贝,但是对于对象存储系统如OSS缺少数据写入方面的优化。

S3DistCp

S3DistCp是AWS为S3上存储提供的distcp工具, S3DistCp是HadoopDistCp 的扩展,它进行了优化使得其可以和S3结合使用,并新增了一些实用功能。新增功能如增量复制文件、复制文件时指定压缩方式、根据模式进行数据聚合、按照文件清单进行拷贝等。

JindoDistCp

JindoDistCp是一个简单易用的分布式文件拷贝工具,目前主要用在E-Mapreduce集群内,主要提供HDFS和S3到OSS的数据迁移服务,相比于HadoopDistCp和S3DistCp,JindoDistCp做了很多优化以及新增了许多个性化功能,并且深度结合OSS对象存储的特性,定制化CopyCommitter,实现No-Rename拷贝,大大缩短离线数据入湖迁移时间消耗。

为什么使用 JindoDistCp?

1、效率高,在测试场景中最高可到1.59倍的加速,大大提高数据湖离线数据迁移效率。

2、基本功能的选项丰富,提供多种拷贝方式和场景优化策略。

3、深度结合OSS,迁移后的文件直接以归档和低频、压缩等方式存放, 无需额外操作。

4、实现No-Rename拷贝,保证数据一致性。

5、场景全面,可完全替代HadoopDistCp,支持多Hadoop版本。

使用 JindoDistCp 性能提升多少?

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

截屏2020-09-14 下午9.07.09.png

12.png

分析测试结果,可以看出JindoDistCp相比HadoopDistCp具有较大的性能提升,在测试场景中最高可达到1.59倍加速效果。

使用工具包

1. 下载jar包

我们去github repo下载最新的jar包 jindo-distcp-x.x.x.jar

注意: 目前Jar包只支持Linux、MacOS操作系统,因为SDK底层采用了native代码。我们会尽快推出全新版本,支持更多平台,敬请关注。

2. 配置OSS访问AK

您可以在命令中使用程序执行时指定--ossKey、--ossSecret、--ossEndPoint参数选项来指定AK。

示例命令如下:

hadoop jar jindo-distcp-2.7.3.jar --src /data/incoming/hourly_table --dest oss://yang-hhht/hourly_table --ossKey yourkey --ossSecret yoursecret --ossEndPoint oss-cn-hangzhou.aliyuncs.com

您也可以将oss的ak、secret、endpoint预先配置在 hadoop的 core-site.xml 文件里 ,避免每次使用时临时填写ak。

<configuration>
    <property>
        <name>fs.jfs.cache.oss-accessKeyId</name>
        <value>xxx</value>
    </property>

    <property>
        <name>fs.jfs.cache.oss-accessKeySecret</name>
        <value>xxx</value>
    </property>

    <property>
        <name>fs.jfs.cache.oss-endpoint</name>
        <value>oss-cn-xxx.aliyuncs.com</value>
    </property>
</configuration>

另外,我们推荐配置免密功能,避免明文保存accessKey,提高安全性。

使用手册

JindoDistCp提供多种实用功能及其对应的参数选择,下面介绍参数含义及其示例

123456.png

更多详细使用细节,请参考JindoDistCp使用指南


更多数据湖技术相关的文章请点击:[阿里云重磅发布云原生数据湖体系
](https://developer.aliyun.com/article/772298?spm=a2c6h.12873581.0.dArticle772298.28042b0fFZNGve&groupCode=datalakeformation)


更多数据湖相关信息交流请加入阿里巴巴数据湖技术钉钉群
数据湖钉群.JPG

相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
存储 分布式计算 关系型数据库
AnayticDB MySQL降本30%的数据湖最佳实践
上海兰姆达数据科技有限公司,基于ADB MySQL 湖仓版降本30%的数据湖最佳实践
|
存储 SQL 弹性计算
数禾云上数据湖最佳实践
数禾科技从成立伊始就组建了大数据团队并搭建了大数据平台。并在ECS上搭建了自己的Cloudera Hadoop集群。但随着公司互联网金融业务的快速扩张发展,大数据团队承担的责任也越来越重,实时数仓需求,日志分析需求,即席查询需求,数据分析需求等,每个业务提出的需求都极大的考验这个Cloudera Hadoop集群的能力。为了减轻Cloudera集群的压力,我们结合自身业务情况,在阿里云上落地一个适合数禾当前现实状况的数据湖。
数禾云上数据湖最佳实践
|
6月前
|
SQL 存储 分布式计算
最佳实践 | 通过Apache Hudi和Alluxio建设高性能数据湖
最佳实践 | 通过Apache Hudi和Alluxio建设高性能数据湖
106 0
|
6月前
|
SQL 关系型数据库 MySQL
Flink CDC + Hudi + Hive + Presto构建实时数据湖最佳实践
Flink CDC + Hudi + Hive + Presto构建实时数据湖最佳实践
336 0
|
存储 SQL 机器学习/深度学习
兰姆达 x AnayticDB 降本30%的数据湖最佳实践
通过ADB Spark & Hudi 降本30%的数据湖最佳实践
兰姆达 x AnayticDB 降本30%的数据湖最佳实践
|
Cloud Native
《小红书云原生开源数据湖最佳实践》电子版地址
《小红书云原生开源数据湖最佳实践》.ppt
498 0
《小红书云原生开源数据湖最佳实践》电子版地址
|
Cloud Native
《云原生数据湖构建、分析与开发治理最佳实践》电子版地址
【2】云原生数据湖构建、分析与开发治理最佳实践_郑锴、张晨晖
187 0
《云原生数据湖构建、分析与开发治理最佳实践》电子版地址
|
SQL 分布式计算 大数据
作业帮基于 DeltaLake 的数据湖建设最佳实践
作业帮是一家以科技为载体的在线教育公司,其大数据中台作为基础系统中台,主要负责建设公司级数仓,向各个产品线提供面向业务主题的数据信息。本文主要分享了作业帮基于 DeltaLake 的数据湖建设最佳实践。
2777 2
作业帮基于 DeltaLake 的数据湖建设最佳实践
|
存储 SQL 分布式计算
百草味基于“ EMR+Databricks+DLF ”构建云上数据湖的最佳实践
本文介绍了百草味大数据平台从 IDC 自建 Hadoop 到阿里云数据湖架构的迁移方案和落地过程。重点从 IDC 自建集群的痛点分析,云上大数据方案的选型以及核心模块的建设过程几个方面做了详细的介绍,希望给想了解和实践数据湖架构的企业和朋友一个参考。
百草味基于“ EMR+Databricks+DLF ”构建云上数据湖的最佳实践
|
存储 弹性计算 分布式计算
数据湖实操讲解【数据迁移】第三讲:如何将 HDFS 海量文件归档到OSS
数据湖 JindoFS+OSS 实操干货 36讲 每周二16点准时直播!扫文章底部二维码入钉群,线上准时观看~ Github链接: https://github.com/aliyun/alibabacloud-jindofs/blob/master/docs/jindo_distcp/jindo_distcp_overview.md
数据湖实操讲解【数据迁移】第三讲:如何将 HDFS 海量文件归档到OSS