You need to enable JavaScript to run this app.
导航

HDFS->LASFS Distcp操作手册

最近更新时间2023.08.25 14:16:46

首次发布时间2023.03.20 19:22:40

本手册适用于从 IDC 或者本地机房的 Hadoop/CDH 集群,直接将 HDFS 拷贝数据到 LAS 上。数据传输到 LASFS 后,可以进一步进行外表创建,进行后续数据分析工作。 要使用该手册进行实际的数据迁移,需满足如下条件。

1. 前置条件
  • 适用于客户已有 CDH/Hadoop 集群的数据迁移,需确保CDH集群可用接入公网。确保可以直接访问如下地址 las-fs-tunnel-cn-beijing.volces.com 的 80 端口,可以通过 telnet 工具访问上述地址。传输的实际速率取决于本地到火山公网带宽的大小。

  • 原始旧集群需临时先关闭 kerberos 认证。

  • 提交用户需要有本身集群的 YARN 队列提交权限,提前准备好队列名称。


1.1 获取 AK/SK

HDFS distcp 到 LASFS 参数需要指定 LASFS 的 AK/SK ,可通过以下方式进行获取。
进入火山引擎首页后,点击右上角 个人头像 - 密钥管理,进入密钥管理页面:

在密钥管理页可以进行查看或添加 AK/SK,填入对应的参数配置中即可。


1.2 下载迁移工具

直接在命令行中使用如下命令下载迁移工具。

# 下载 LasFS SDK 到本地的 /tmp 目录:/tmp/las-fs-tunnel-sdk-shaded-0.0.3.1-RELEASE.jar
wget -P /tmp/ https://artifact.bytedance.com/repository/releases/com/volcengine/las/las-fs-tunnel-sdk-shaded/0.0.3.1-RELEASE/las-fs-tunnel-sdk-shaded-0.0.3.1-RELEASE.jar

2. 使用任务模版迁移

下述模版可将 HDFS 文件上传至 LASFS 的对应填入路径中。

hadoop distcp 
# Yarn 队列名 
-Dmapreduce.job.queuename=${QUEUE} \
# 必须是主账号 AK                                        
-Dfs.lasfs.access.key=${ACCESS_KEY} \
# 必须是主账号 SK
-Dfs.lasfs.secret.key=${SECRET_KEY} \
-Dfs.lasfs.impl=com.volcengine.las.fs.LasFileSystem \
-Dfs.lasfs.service.region=cn-beijing \
-Dfs.lasfs.endpoint=las-fs-tunnel-cn-beijing.volces.com:80 \
-Dio.file.buffer.size=8388608 \
# 下载到本地的L asFS SDK 路径,比如 /tmp/las-fs-tunnel-sdk-shaded-0.0.3.1-RELEASE.jar
-libjars ${LAS_FS_JAR_PATH} \
-skipcrccheck -update -delete -pb \
# map 并发数量
-m 5 \
# HDFS 源路径,比如:hdfs://namemode_address/hive/warehouse/ods/table1
${HDFS_SOURCE} \
# LasFS 目标路径,比如放到 lasfs:/public/ 这个目录下,比如:lasfs:/public/hive/warehouse/ods/table1
${LASFS_TARGET}

任务提交后,会在 YARN 的界面生成一个 MapReduce 任务 UI,观察进度到结束。

示例如下 (需要在原有 Hadoop/CDH 集群运行)

hadoop distcp \
-Dmapreduce.job.queuename=root.default \
-Dfs.lasfs.access.key=aksdsfsfds \
-Dfs.lasfs.secret.key=sdsfsfdsfsdfs== \
-Dfs.lasfs.impl=com.volcengine.las.fs.LasFileSystem \
-Dfs.lasfs.service.region=cn-beijing \
-Dfs.lasfs.endpoint=las-fs-tunnel-cn-beijing.volces.com:80 \
-libjars /tmp/las-fs-tunnel-sdk-shaded-0.0.3.1-RELEASE.jar \
-skipcrccheck -update -delete -pb \
-m 2 \
hdfs://minibase/hive/warehouse/ods/table1 \
lasfs:/public/hive/warehouse/ods/table1

执行成功后,可以看到如下输出。检验当前的 YARN 任务是否完成,查看数据:


3. 验证迁移后数据

迁移后的数据可以直接在 LASFS 对应的目录查看,然后可以在此基础上建立外表,或进行导入内表等操作。

4. 后续外表使用

如果需要查询 parquet 数据等,可以创建 LASFS parquet 外表,查询界面使用可以参考
https://www.volcengine.com/docs/6492/111831
建立外表并查询的语法如下:

CREATE EXTERNAL TABLE ods.table1 (
  `id` bigint,
  `name` string
)
location
  'lasfs:/public/hive/warehouse/ods/table1'
stored as parquet;

随后可以使用下面查询:

select * from ods.table1