文档

从HDFS迁移数据到OSS/OSS-HDFS

更新时间:

本文为您介绍如何使用阿里云JindoDistCp从HDFS迁移数据到OSS/OSS-HDFS。

前提条件

已根据JindoDistCp使用说明进行环境适配和工具包下载。

注意事项

JindoSDK 4.4.0及以上版本默认使用域名分离的方式,数据读写域名默认使用内网标准OSS域名,如果在非阿里云内网环境执行distcp命令,则需要在Hadoop-Commoncore-site.xml中配置数据流访问的公网OSS Endpoint。

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

操作步骤

  1. 在EMR控制台配置OSS/OSS-HDFS的AccessKey。

    Hadoop-Common服务的core-site.xml页签,新增以下配置项,以避免使用时多次填写的问题。新增配置项的具体操作,请参见管理配置项

    参数

    说明

    fs.oss.accessKeyId

    OSS/OSS-HDFS的AccessKey ID。

    fs.oss.accessKeySecret

    OSS/OSS-HDFS的AccessKey Secret。

  2. 拷贝数据到阿里云OSS/OSS-HDFS上。

    1. 登录集群,详情请参见登录集群

    2. 进入/opt/apps/JINDOSDK/jindosdk-current/tools目录。

      在该目录下获取jindo-distcp-tool-${version}.jar完整的包名。例如,jindo-distcp-tool-4.6.11.jar。

    3. 您可以使用如下命令将HDFS上的目录及数据拷贝到OSS/OSS-HDFS上。

      hadoop jar jindo-distcp-tool-${version}.jar --src /data --dest oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/dir/ --parallelism 10

      参数

      描述

      示例

      --src

      HDFS的源路径。

      /data

      --dest

      OSS/OSS-HDFS的目标路径。

      说明

      使用OSS-HDFS时,推荐访问路径格式为oss://<Bucket>.<Endpoint>/<Object>。例如,oss://mydlsbucket.cn-shanghai.oss-dls.aliyuncs.com/Test。JindoSDK还支持更多Endpoint配置方式,详情请参见阿里云OSS-HDFS服务(JindoFS 服务)Endpoint配置

      • OSS:oss://destBucket/

      • OSS-HDFS:oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/

      --parallelism

      任务并发大小,根据集群资源可调整。

      10

高阶用法

  • 增量拷贝文件

    如果JindoDistCp任务因为各种原因中间失败了,而此时您想进行断点续传,只Copy剩下未Copy成功的文件,或者源端文件新增了部分文件,此时需要在上一次JindoDistCp任务完成后,使用--update命令,获得增量的文件列表。

    hadoop jar jindo-distcp-tool-${version}.jar --src /data --dest oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/dir/ --update --parallelism 20
  • YARN队列及带宽选择

    如果您需要对DistCp作业使用的YARN队列和带宽进行限定,可以使用以下命令。

    hadoop jar jindo-distcp-tool-${version}.jar --src /data --dest oss://destBucket.cn-xxx.oss-dls.aliyuncs.com/dir/ --hadoopConf mapreduce.job.queuename=yarnQueue --bandWidth 100 --parallelism 10
    • --hadoopConf mapreduce.job.queuename:指定YARN队列的名称。

    • --bandWidth:指定单机限流带宽的大小,单位MB。

相关文档

如果您在使用过程中遇到问题,可以参见JindoDistCp常见问题解决。

  • 本页导读 (1)
文档反馈