一、基础文件操作

  1. 上传与下载

    • 上传本地文件到 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       # 合并目录下所有文件下载
      
  2. 查看内容

    • 查看完整文件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

二、目录管理

  1. 创建与删除

    • 创建目录
      hdfs dfs -mkdir /new_dir                     # 单级目录
      hdfs dfs -mkdir -p /parent/child/subdir      # 递归创建多级目录
      
    • 删除目录
      hdfs dfs -rm -r /old_dir            # 递归删除目录(进回收站)
      hdfs dfs -rm -r -skipTrash /dir      # 直接删除(绕过回收站,慎用!)
      
  2. 查看与统计

    • 列出目录内容
      hdfs dfs -ls /target_dir              # 基础列表
      hdfs dfs -ls -R /target_dir           # 递归列出所有子目录内容
      
    • 查看目录大小
      hdfs dfs -du -h /dir                  # 显示各子项大小(人类可读格式)
      hdfs dfs -du -s -h /dir               # 汇总显示目录总大小
      

三、权限与所有权控制

  1. 修改权限

    hdfs dfs -chmod 755 /hdfs/file        # 数字模式修改权限
    hdfs dfs -chmod -R 755 /hdfs/dir      # 递归修改目录权限
    
  2. 修改所有者与组

    hdfs dfs -chown user:group /hdfs/file  # 修改所有者和组
    hdfs dfs -chown -R user:group /dir     # 递归修改目录所有者
    

四、集群监控与维护

  1. 安全模式管理

    • 检查状态hdfs dfsadmin -safemode get → 返回 Safe mode is ON/OFF
    • 强制退出hdfs dfsadmin -safemode leave(需先修复副本问题)
  2. 集群健康检查

    • 查看节点报告hdfs dfsadmin -report(显示容量、节点状态、损坏块数)
    • 文件系统检查
      hdfs fsck /                 # 整体健康扫描
      hdfs fsck /file -blocks -locations  # 定位文件块分布
      
  3. 数据均衡

    start-balancer.sh -threshold 10   # 启动均衡器(磁盘使用率差异≤10%)
    hdfs balancer -status             # 查看均衡进度
    

五、数据维护与修复

  1. 副本管理

    • 设置副本数hdfs dfs -setrep -w 3 /file(设置副本数为3,-w等待操作完成)
    • 修复损坏块
      hdfs fsck / -list-corruptfileblocks    # 列出损坏块
      hdfs debug recoverLease -path /file -retries 3  # 恢复租约触发副本重建
      
  2. 快照与备份

    • 创建快照
      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