Hadoop 基本操作命令全解析:掌控数据海洋的「舵手指南」

引言:Hadoop 命令 —— 数据巨轮的「方向盘」

Hadoop 作为大数据处理的「航空母舰」,承载着海量数据的存储与计算。而 Hadoop 命令就是操控这艘巨轮的「方向盘」——

  • HDFS 命令让你在分布式文件系统中自由穿梭,像管理本地文件一样操作集群数据;
  • YARN 命令帮你调度资源,让计算任务高效运行;
  • MapReduce 命令则是触发数据处理「引擎」的钥匙。
    本文带你梳理核心操作命令,轻松驾驭 Hadoop 集群!

一、HDFS 文件系统:分布式数据的「仓库管理员」

HDFS(Hadoop 分布式文件系统)是 Hadoop 的「数据仓库」,常用命令围绕数据的增删改查和集群状态查看。

1. 文件 / 目录操作(核心高频命令)

功能 HDFS 命令(hdfs dfs) 本地等效命令 说明
查看文件 cat /path/to/file cat 显示文件内容(小文件适用)
查看目录 ls /user/hadoop ls 列出目录下的文件 / 子目录
创建目录 mkdir -p /user/hadoop mkdir -p 递归创建目录(-p避免报错)
上传文件 put local_file /hdfs_path cp 从本地上传到 HDFS
下载文件 get /hdfs_file local_path cp 从 HDFS 下载到本地
删除文件 / 目录 rm /file 或 rm -r /directory rm/rm -r -r递归删除目录(谨慎操作!)
重命名 / 移动 mv old_path new_path mv 支持跨目录移动
✨ 示例:上传本地日志文件到 HDFS
hdfs dfs -put /local/logs/access.log /hdfs/data/raw/  

2. 文件统计与权限

  • 查看文件详情
    hdfs dfs -stat /user/hadoop/data.csv  # 显示文件大小、块数等信息  
    hdfs dfs -du -h /directory  # 统计目录下文件大小(带单位,易读)  
    
  • 权限管理(类似 Linux 文件权限):
    hdfs dfs -chmod 755 /user/hadoop  # 修改目录权限  
    hdfs dfs -chown hadoop:hdfs /file  # 修改文件所有者/组  
    

3. 集群状态查看

  • 查看 HDFS 集群健康状态
    hdfs dfsadmin -report  # 显示节点状态、磁盘使用、块分布等核心指标  
    
  • 查看文件块信息(HDFS 分块存储特性):
    hdfs fsck /path/to/file  # 检查文件块是否完整,是否存在副本丢失  
    

二、YARN 资源管理:任务调度的「交通警察」

YARN(Yet Another Resource Negotiator)负责分配集群资源,常用命令聚焦任务监控和资源调度。

1. 作业监控

  • 查看所有运行中的作业
    yarn application -list  # 显示作业ID、状态、队列、资源占用等  
    
  • 查看作业详细信息
    yarn application -status   # 查看作业日志、进度、失败原因  
    
  • 杀死异常作业(紧急止损!):
    yarn application -kill   
    

2. 资源查看

  • 查看集群资源使用情况
    yarn node -list  # 显示所有节点的CPU/内存/磁盘使用情况、健康状态  
    yarn cluster -status  # 集群整体资源汇总(总内存、可用内存、节点数等)  
    

3. 日志管理

  • 获取作业日志(调试必备)
    yarn logs -applicationId   # 下载作业日志到本地  
    

三、MapReduce 作业:触发数据处理的「引擎」

MapReduce 是 Hadoop 的经典计算模型,虽逐渐被 Spark 等替代,但基础命令仍需掌握。

1. 提交作业

  • 执行 JAR 包(传统方式)
    hadoop jar /path/to/mapreduce.jar input_path output_path  
    
  • 执行示例作业(Hadoop 自带)
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output  
    

2. 作业输出验证

  • 查看 MapReduce 结果
    hdfs dfs -cat /output/part-r-00000  # 查看Reducer输出文件  
    

四、集群管理:Hadoop 的「健康体检」工具️

1. 配置文件操作

  • 查看 Hadoop 配置(如 HDFS 副本数、YARN 内存分配):
    cat $HADOOP_HOME/etc/hadoop/core-site.xml  # 核心配置  
    cat $HADOOP_HOME/etc/hadoop/hdfs-site.xml  # HDFS配置  
    

2. 服务启停

  • 启动 / 停止 HDFS 服务(需在 NameNode 节点执行):
    start-dfs.sh  # 启动HDFS集群(NameNode、DataNode、SecondaryNameNode)  
    stop-dfs.sh   # 停止HDFS服务  
    
  • 启动 / 停止 YARN 服务(需在 ResourceManager 节点执行):
    start-yarn.sh  # 启动YARN集群(ResourceManager、NodeManager)  
    stop-yarn.sh   # 停止YARN服务  
    

3. 安全模式(HDFS 维护模式)

  • 进入安全模式(只读,用于元数据修复)
    hdfs dfsadmin -safemode enter  
    
  • 离开安全模式(修复完成后)
    hdfs dfsadmin -safemode leave  
    

五、实用工具:提升效率的「瑞士军刀」

1. 数据压缩与解压缩

  • 压缩 HDFS 文件(减少存储占用)
    hadoop jar $HADOOP_HOME/share/hadoop/tools/hadoop-streaming.jar -compress -input /input -output /output  
    

2. 跨集群数据传输

  • 通过 DistCp 复制数据(分布式复制,高效传输大文件)
    hadoop distcp hdfs://cluster1/path hdfs://cluster2/path  
    

3. 性能调优辅助

  • 查看 HDFS 块分布是否均衡
    start-balancer.sh  # 启动块均衡器,自动调整节点间数据分布  
    

六、HDFS vs 本地文件系统:命令对比速查表

操作 HDFS 命令(hdfs dfs) 本地 Linux 命令 核心区别
查看文件 hdfs dfs -cat /file cat /file HDFS 操作需指定完整 HDFS 路径
上传文件 hdfs dfs -put local file cp local file 上传到分布式集群,支持大文件分块
目录创建 hdfs dfs -mkdir -p /dir mkdir -p dir HDFS 路径以/开头,代表根目录
删除文件 hdfs dfs -rm /file rm file HDFS 删除后可通过回收站恢复(需配置)

七、注意事项:避坑指南⚠️

  1. 路径格式要牢记
    • HDFS 路径以hdfs://开头(如hdfs://nameservice1/user/hadoop),或直接用相对路径(如/user/hadoop)。
  2. 权限问题别忽视
    • 上传文件时常见Permission denied错误?用hdfs dfs -chown修改目录所有者,或用管理员用户操作。
  3. 版本差异要注意
    • Hadoop 3.x 与 2.x 部分命令略有不同(如 YARN 日志命令),建议查看官方文档(hadoop --help)。
  4. 慎用递归删除
    • hdfs dfs -rm -r会删除目录下所有内容,执行前先用ls确认路径正确,生产环境务必谨慎!

总结:在实践中掌握 Hadoop 命令「十八般武艺」

Hadoop 命令是玩转大数据的基础,从 HDFS 的文件操作到 YARN 的资源调度,每个命令都是解锁数据价值的「钥匙」:

  • 开发阶段:用put/get快速上传下载测试数据,cat/ls实时查看结果;
  • 运维阶段:靠dfsadmin -report监控集群健康,start-dfs.sh快速启停服务;
  • 调优阶段:借balancer均衡数据分布,distcp高效迁移跨集群数据。

记住:命令的熟练来自反复实践!建议在本地伪分布式集群中多敲多试,遇到问题用hadoop command --help查看详细用法。当你能流畅使用这些命令时,就已经迈出了掌控 Hadoop 的关键一步~

你可能感兴趣的:(hadoop,大数据,分布式)