Hadoop 作为大数据处理的「航空母舰」,承载着海量数据的存储与计算。而 Hadoop 命令就是操控这艘巨轮的「方向盘」——
- HDFS 命令让你在分布式文件系统中自由穿梭,像管理本地文件一样操作集群数据;
- YARN 命令帮你调度资源,让计算任务高效运行;
- MapReduce 命令则是触发数据处理「引擎」的钥匙。
本文带你梳理核心操作命令,轻松驾驭 Hadoop 集群!
HDFS(Hadoop 分布式文件系统)是 Hadoop 的「数据仓库」,常用命令围绕数据的增删改查和集群状态查看。
功能 | 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 dfs -put /local/logs/access.log /hdfs/data/raw/
hdfs dfs -stat /user/hadoop/data.csv # 显示文件大小、块数等信息
hdfs dfs -du -h /directory # 统计目录下文件大小(带单位,易读)
hdfs dfs -chmod 755 /user/hadoop # 修改目录权限
hdfs dfs -chown hadoop:hdfs /file # 修改文件所有者/组
hdfs dfsadmin -report # 显示节点状态、磁盘使用、块分布等核心指标
hdfs fsck /path/to/file # 检查文件块是否完整,是否存在副本丢失
YARN(Yet Another Resource Negotiator)负责分配集群资源,常用命令聚焦任务监控和资源调度。
yarn application -list # 显示作业ID、状态、队列、资源占用等
yarn application -status # 查看作业日志、进度、失败原因
yarn application -kill
yarn node -list # 显示所有节点的CPU/内存/磁盘使用情况、健康状态
yarn cluster -status # 集群整体资源汇总(总内存、可用内存、节点数等)
yarn logs -applicationId # 下载作业日志到本地
MapReduce 是 Hadoop 的经典计算模型,虽逐渐被 Spark 等替代,但基础命令仍需掌握。
hadoop jar /path/to/mapreduce.jar input_path output_path
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output
hdfs dfs -cat /output/part-r-00000 # 查看Reducer输出文件
cat $HADOOP_HOME/etc/hadoop/core-site.xml # 核心配置
cat $HADOOP_HOME/etc/hadoop/hdfs-site.xml # HDFS配置
start-dfs.sh # 启动HDFS集群(NameNode、DataNode、SecondaryNameNode)
stop-dfs.sh # 停止HDFS服务
start-yarn.sh # 启动YARN集群(ResourceManager、NodeManager)
stop-yarn.sh # 停止YARN服务
hdfs dfsadmin -safemode enter
hdfs dfsadmin -safemode leave
hadoop jar $HADOOP_HOME/share/hadoop/tools/hadoop-streaming.jar -compress -input /input -output /output
hadoop distcp hdfs://cluster1/path hdfs://cluster2/path
start-balancer.sh # 启动块均衡器,自动调整节点间数据分布
操作 | 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 删除后可通过回收站恢复(需配置) |
hdfs://
开头(如hdfs://nameservice1/user/hadoop
),或直接用相对路径(如/user/hadoop
)。Permission denied
错误?用hdfs dfs -chown
修改目录所有者,或用管理员用户操作。hadoop --help
)。hdfs dfs -rm -r
会删除目录下所有内容,执行前先用ls
确认路径正确,生产环境务必谨慎!Hadoop 命令是玩转大数据的基础,从 HDFS 的文件操作到 YARN 的资源调度,每个命令都是解锁数据价值的「钥匙」:
put/get
快速上传下载测试数据,cat/ls
实时查看结果;dfsadmin -report
监控集群健康,start-dfs.sh
快速启停服务;balancer
均衡数据分布,distcp
高效迁移跨集群数据。记住:命令的熟练来自反复实践!建议在本地伪分布式集群中多敲多试,遇到问题用hadoop command --help
查看详细用法。当你能流畅使用这些命令时,就已经迈出了掌控 Hadoop 的关键一步~