hdfs文件复制方法

本文详细介绍了如何使用HDFS进行文件复制,包括表结构的迁移、文件数据的拷贝,以及表元数据的修复。随后展示了如何在新的数据库中加载和验证数据,涉及创建表、本地加载和查询操作。

hdfs文件复制,并拷贝修复数据

-- 1、复制表结构
create table  t1 like t2;
-- 2、复制文件数据
hadoop distcp -update -skipcrccheck -m 300 hdfs://ns1/warehouse/ods.db/t2 hdfs://ns1/warehouse/bkdata.db/t1
-- 3、修复表元数据
msck repair table t1

hdfs 加载数据

-- 1、创建新表
use db1;
create table db1.test_02_20210223(
name string,
age integer) 
row format delimited 
fields terminated by '\t' 
lines terminated by '\n' 
stored as textfile 
-- 2、load数据
load data local INPATH '/soft/data/data1.txt' INTO TABLE db1.test_02_20210223 ;
-- 3、 查看加载结果
select * from db1.test_02_20210223
### HDFS 文件复制命令详解 在 HDFS 中,`hadoop fs -cp` 命令用于将文件从源路径复制到目标路径。此命令支持单个或多个源路径的复制操作,当存在多个源路径时,目标路径必须是一个目录[^3]。 以下是 `hadoop fs -cp` 的基本语法和示例: #### 基本语法 ```bash hadoop fs -cp <source_path> <destination_path> ``` - `<source_path>` 表示要复制文件或目录的路径。 - `<destination_path>` 表示目标文件或目录的路径。 如果目标路径已存在,则会覆盖原有内容;如果不存在,则会创建新文件或目录。 #### 单文件复制示例 假设需要将 `/user/hadoop/input.txt` 复制到 `/user/hadoop/output.txt`,可以执行以下命令: ```bash hadoop fs -cp /user/hadoop/input.txt /user/hadoop/output.txt ``` #### 多文件复制示例 如果需要将多个文件复制到同一个目标目录下,例如将 `/user/hadoop/file1` 和 `/user/hadoop/file2` 复制到 `/user/hadoop/backup` 目录中,可使用如下命令: ```bash hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/backup/ ``` 注意:在这种情况下,目标路径 `/user/hadoop/backup/` 必须已经存在,并且是一个目录。 #### 关于 `hadoop fs` 与其他命令的关系 `hadoop fs` 是一个通用命令接口,适用于多种文件系统(如本地文件系统或 HDFS),而 `hadoop dfs` 或者更早版本中的 `dfs` 则专指 HDFS 操作[^2]。尽管功能上相似,推荐优先使用 `hadoop fs` 来保持兼容性和一致性。 --- ### 注意事项 在实际应用过程中,确保 NameNode 能够正确识别集群内的节点状态。如果有新增或移除节点的需求,可以通过刷新配置来同步最新的 hosts 和 exclude 文件设置[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟冲锋号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值