迁移开源HDFS数据到文件存储HDFS版

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文档介绍如何将开源HDFS的数据平滑地迁移到文件存储HDFS版。

背景

当前业界有很多公司是以Hadoop技术构建数据中心,而越来越多的公司和企业希望将业务顺畅地迁移到云上。文件存储HDFS版可以帮助您实现将开源HDFS的数据迁移到云上,并允许您在云上就像在Hadoop分布式文件系统中一样管理和访问数据。


准备工作

  1. 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详情请参见快速入门
  2. 准备一个基于阿里云ECS搭建的Hadoop集群(下称"迁移集群"),用于访问文件存储HDFS版实例和迁移数据。
  • 迁移集群应与文件存储HDFS版实例在相同区域、相同可用区内。
  • 迁移集群应与文件存储HDFS实例的挂载点使用相同阿里云VPC网络及交换机。
  • 迁移集群上安装的JDK版本不低于1.8。
  • 迁移集群上安装的Hadoop版本不低于2.7.2。
  • 如果原集群满足上述条件且计算资源充足,可以直接将原集群当作迁移集群使用,而不必额外创建新集群。
  1. 在迁移集群中配置文件存储HDFS实例,详情请参见挂载文件系统
  2. 验证迁移集群和文件存储HDFS实例之间的连通性。
  1. 执行以下命令,在文件存储HDFS上创建目录(如:/dfs_links)。
hadoop fs -mkdir /dfs_links

        b. 执行以下命令,验证连通性。

hadoop fs -ls dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/dfs_links

其中f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com为文件存储HDFS挂载点域名,请根据您的实际情况进行修改。

如果命令正常执行无输出结果,则表示访问成功。如果访问失败,请参见创建文件系统实例后,为什么无法访问文件存储HDFS版?进行排查。

  1. 准备迁移工具。

使用Hadoop社区标准的DistCp工具实现全量或增量的HDFS数据迁移,详细的Distcp工具使用说明请参见Hadoop DistCp 工具官方说明文档

  • Distcp 工具使用注意事项

使用hadoop distcp命令将原集群数据迁移至文件存储HDFS时,请注意文件存储HDFS不支持以下参数,其它参数使用和Hadoop DistCp 工具官方说明文档一致。参见使用限制了解更多文件存储HDFS及命令行存在的限制。

参数

描述

状态

-p[rbpax]

r:replication,b:block-size

p:permission,a:ACL,x:XATTR

不可用


数据迁移

下面介绍直接迁移数据中转两种迁移方式,推荐使用直接迁移

方式一 直接迁移

直接从原集群迁移数据到文件存储HDFS,需要先连通原集群和迁移集群的网络环境,再执行数据迁移任务。

  1. 连通原集群与迁移集群的网络环境。
  • 场景a 原集群在阿里云ECS实例上(包括EMR)。

如果在准备工作中将原集群当作迁移集群来使用,请直接执行第2步中的迁移命令。

  • 场景b 原集群其他平台上。
  • 使用阿里云高速通道产品连通原集群和迁移集群的网络环境,详情请参见专线上云方案介绍
  1. 在已配置文件存储HDFS的集群上参考以下命令迁移数据。
hadoop distcp hdfs://x.x.x.x:9000/user/hive/warehouse  dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/user/hive/warehouse

方式二 数据中转

如果原集群与迁移集群的网络无法连通,可以参考以下步骤迁移数据。

  1. 将原集群数据迁移到对象存储OSS,详情请参见离线迁移教程
  2. 将对象存储OSS数据迁移到文件存储HDFS,详情请参见文件存储HDFS版和对象存储OSS双向数据迁移

常见问题

  • 整体迁移速度受Hadoop集群与文件存储HDFS之间的带宽、集群规模影响。同时传输文件越多,checksum需要的时间越长。如果迁移数据量大,建议先尝试迁移几个目录评估下整体时间。如果只能在指定时间段内迁移数据,可以将目录切为几个小目录,依次迁移。
  • 一般全量数据同步时,需要一个短暂的业务停写过程,用来启用双写双算。
  • 迁移过程出现异常提示:Cannot obtain block length for LocatedBlock。

从原生的HDFS往对象存储OSS/文件存储HDFS迁移数据时,可能会遇到这个问题。遇到该问题时,请执行hdfs fsck / –openforwrite命令,检查当前是否有文件处于写入状态尚未关闭。如果有处于写入状态的文件时,需判断文件是否有效。

  • 如果文件无效,则直接删除文件。
hdfs rm <path-of-the-file>
  • 如果文件有效,则不能直接删除,请考虑恢复问题文件租约。
hdfs debug recoverLease -path <path-of-the-file> -retries <retry times>


了解更多关于文件存储HDFS版的产品信息,欢迎访问https://www.aliyun.com/product/alidfs

如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
1月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
31 4
|
1月前
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
32 2
|
30天前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
78 0
|
30天前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
34 0
|
30天前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
44 0
|
3月前
|
SQL 存储 分布式计算
HDFS数据(跨集群)迁移
HDFS数据(跨集群)迁移
|
4月前
|
分布式计算 Hadoop
|
4月前
|
分布式计算 Hadoop 关系型数据库
实时计算 Flink版操作报错合集之Hadoop在将文件写入HDFS时,无法在所有指定的数据节点上进行复制,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
存储 运维 监控
阿里云的文件存储NAS使用心得
阿里云的文件存储NAS使用心得
367 0
|
存储 弹性计算 固态存储
阿里云服务器1TB存储收费标准(数据盘/对象存储OSS/文件存储NAS)
阿里云服务器1TB存储多少钱?系统盘最大可选到500GB,数据盘选到1TB价格为3655元一年。也可以选择对象存储OSS和文件存储NAS
6226 2
阿里云服务器1TB存储收费标准(数据盘/对象存储OSS/文件存储NAS)