当前位置: 首页 > news >正文

HDFS 常用基础命令详解——快速上手分布式文件系统

简介:
本文面向刚接触 Hadoop HDFS(Hadoop 分布式文件系统)的读者,结合 CSDN 博客风格,系统梳理最常用的 HDFS 客户端命令,并配以示例和注意事项,帮助你在开发和运维中快速掌握 HDFS 的文件管理能力。


一、前置条件与环境准备

  1. 安装 Hadoop
    已完成 Hadoop 单节点或伪分布式集群安装,并能正常启动 HDFS(start-dfs.sh)。

  2. 配置环境变量
    确保 HADOOP_HOMEPATH 已包含 Hadoop 可执行文件路径。例如在 ~/.bashrc 中:

    export HADOOP_HOME=/opt/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
  3. 验证 HDFS 服务

    jps
    # 应至少看到 NameNode、DataNode、SecondaryNameNode 等进程
    hdfs dfsadmin -report
    

二、HDFS 文件系统目录操作

操作命令示例说明
创建目录hdfs dfs -mkdir /user/yourname/input支持 -p 递归创建父目录
列出目录hdfs dfs -ls /user/yournamehadoop fs -ls
递归列出hdfs dfs -ls -R /user/yourname列出子目录及文件
删除文件/目录hdfs dfs -rm /path/to/filehdfs dfs -rm -r /path/to/dir-r 递归,-skipTrash 直删
重命名/移动hdfs dfs -mv /src /dstsrc 与 dst 必须同属 HDFS
复制文件hdfs dfs -cp /src /dst从 HDFS 到 HDFS

三、HDFS 与本地文件互转

操作命令示例说明
本地 → HDFS(上传)hdfs dfs -put local.txt /user/yourname/input/-copyFromLocal
强制覆盖上传hdfs dfs -put -f local.txt /user/yourname/input/覆盖已存在同名文件
HDFS → 本地(下载)hdfs dfs -get /user/yourname/input/data01.txt ./-copyToLocal
本地重命名后上传hdfs dfs -copyFromLocal local.txt /user/yourname/input/new.txt可以在 HDFS 端指定新文件名

四、查看与读取文件内容

  • 查看完整内容

    hdfs dfs -cat /user/yourname/input/data01.txt
    
  • 查看开头或结尾

    hdfs dfs -cat /user/yourname/input/data01.txt | head -n 20   # 前 20 行
    hdfs dfs -tail /user/yourname/input/data01.txt             # 末尾 1KB
    
  • 统计行数、字节数

    hdfs dfs -count -q /user/yourname/input   # 行数、文件数、目录数
    hdfs dfs -du -h /user/yourname/input      # 各文件和目录的大小
    

五、权限与空间管理

  1. 修改文件权限

    hdfs dfs -chmod 755 /user/yourname/input/data01.txt
    
  2. 修改文件属主/属组

    hdfs dfs -chown yourname:yourgroup /path/to/file
    
  3. 查看使用情况

    hdfs dfsadmin -report
    hdfs dfs -df -h
    

六、最佳实践与注意事项

  • 避免在小文件大量场景下使用:HDFS 更适合存储大文件,千万级小文件会导致 NameNode 内存压力增大。

  • 合理设置副本数:开发环境可用副本数 1,生产应至少 2~3。

  • 频繁读写使用中间目录:避免在同一目录下反复 putrm,可按日期或业务类型分区。

  • 使用 hadoop fshdfs dfshadoop fs 功能等价,可根据习惯任选。


七、结语

以上涵盖了 HDFS 最常用的基础命令,包含目录管理、文件上传下载、内容查看及权限调整等。掌握这些命令后,你就可以在开发、调试和运维环节高效地与 HDFS 交互。更多高级用法(如 DistCp、HDFS Shell 脚本批量化操作、WebHDFS 接口等),可在后续文章中继续分享,欢迎关注与留言讨论!

相关文章:

  • 巡检机器人数据处理技术的创新与实践
  • uniapp+vue3+firstUI时间轴 提现进度样式
  • # YOLOv3:深度学习中的目标检测利器
  • 高效Python开发:uv包管理器全面解析
  • C++--类的构造函数与初始化列表差异
  • 第十八章,入侵检测/防御系统(IDS/IPS)
  • JSON|cJSON 介绍以及具体项目编写
  • C++ 关联式容器:map,multimap,set,multiset
  • yarn npm pnpm
  • 如何快速分享服务器上的文件
  • 详解多协议通信控制器
  • 【字节拥抱开源】字节豆包团队开源首发 Seed-Coder 大模型
  • 04 mysql 修改端口和重置root密码
  • 软件测试——用例篇(3)
  • Web3 初学者学习路线图
  • 20250510-查看 Anaconda 配置的镜像源
  • navicat112_premium_cs_x64.exe PatchNavicat.exe
  • BeanPostProcessor和AOP
  • 前端SSE技术详解:从入门到实战的完整指南
  • Anaconda的简单使用
  • 刘元春在《光明日报》撰文:以法治护航民营经济高质量发展
  • 上海发布预付卡消费“10点提示”:警惕“甩锅闭店”套路
  • 顾家家居:拟定增募资近20亿元,用于家居产品生产线的改造和扩建等
  • 老铺黄金拟配售募资近27亿港元,用于门店拓展扩建及补充流动资金等
  • 首届上海老年学习课程展将在今年10月举办
  • 上海充电桩调研:须全盘考量、分步实现车网互动规模化