一、基础文件操作
-
上传与下载
- 上传本地文件到 HDFS:
hdfs dfs -put local_file.txt /target/hdfs/directory/ # 上传单个文件 hdfs dfs -put local_dir/ /target/hdfs/directory/ # 上传整个目录 - 从 HDFS 下载文件:
hdfs dfs -get /hdfs/source/file.txt ./local_dir/ # 下载文件 hdfs dfs -getmerge /hdfs/dir/ ./merged_local.txt # 合并目录下所有文件下载
- 上传本地文件到 HDFS:
-
查看内容
- 查看完整文件:
hdfs dfs -cat /hdfs/file.log - 查看文件头部/尾部:
hdfs dfs -head /hdfs/file.log # 前几行 hdfs dfs -tail /hdfs/file.log # 尾部1KB内容 - 以文本格式查看(支持压缩文件):
hdfs dfs -text /hdfs/compressed.gz
- 查看完整文件:
二、目录管理
-
创建与删除
- 创建目录:
hdfs dfs -mkdir /new_dir # 单级目录 hdfs dfs -mkdir -p /parent/child/subdir # 递归创建多级目录 - 删除目录:
hdfs dfs -rm -r /old_dir # 递归删除目录(进回收站) hdfs dfs -rm -r -skipTrash /dir # 直接删除(绕过回收站,慎用!)
- 创建目录:
-
查看与统计
- 列出目录内容:
hdfs dfs -ls /target_dir # 基础列表 hdfs dfs -ls -R /target_dir # 递归列出所有子目录内容 - 查看目录大小:
hdfs dfs -du -h /dir # 显示各子项大小(人类可读格式) hdfs dfs -du -s -h /dir # 汇总显示目录总大小
- 列出目录内容:
三、权限与所有权控制
-
修改权限
hdfs dfs -chmod 755 /hdfs/file # 数字模式修改权限 hdfs dfs -chmod -R 755 /hdfs/dir # 递归修改目录权限 -
修改所有者与组
hdfs dfs -chown user:group /hdfs/file # 修改所有者和组 hdfs dfs -chown -R user:group /dir # 递归修改目录所有者
四、集群监控与维护
-
安全模式管理
- 检查状态:
hdfs dfsadmin -safemode get→ 返回Safe mode is ON/OFF - 强制退出:
hdfs dfsadmin -safemode leave(需先修复副本问题)
- 检查状态:
-
集群健康检查
- 查看节点报告:
hdfs dfsadmin -report(显示容量、节点状态、损坏块数) - 文件系统检查:
hdfs fsck / # 整体健康扫描 hdfs fsck /file -blocks -locations # 定位文件块分布
- 查看节点报告:
-
数据均衡
start-balancer.sh -threshold 10 # 启动均衡器(磁盘使用率差异≤10%) hdfs balancer -status # 查看均衡进度
五、数据维护与修复
-
副本管理
- 设置副本数:
hdfs dfs -setrep -w 3 /file(设置副本数为3,-w等待操作完成) - 修复损坏块:
hdfs fsck / -list-corruptfileblocks # 列出损坏块 hdfs debug recoverLease -path /file -retries 3 # 恢复租约触发副本重建
- 设置副本数:
-
快照与备份
- 创建快照:
hdfs dfsadmin -allowSnapshot /backup_dir # 启用快照功能 hdfs dfs -createSnapshot /backup_dir snapshot_v1 # 创建快照 - 跨集群复制:
hadoop distcp hdfs://nn1/source hdfs://nn2/dest # 并行大规模数据迁移
- 创建快照:
六、注意事项
- 路径规范:HDFS 路径以
/开头(如/user/hadoop),默认用户目录为/user/当前用户名。 - 权限问题:上传需写权限,下载需读权限;Kerberos 集群需先
kinit认证。 - 危险操作:
-skipTrash(跳过回收站)、-rm -r(递归删除)可致数据永久丢失。 - 小文件优化:使用
hadoop archive生成 HAR 文件减少 NameNode 压力。
附:常用命令速查表
功能 命令示例 上传文件 hdfs dfs -put local.txt /hdfs/递归删除目录 hdfs dfs -rm -r /old_data检查安全模式 hdfs dfsadmin -safemode get查看文件块分布 hdfs fsck /file -blocks -locations
浙公网安备 33010602011771号