Hadoop作为分布式系统基础框架,其基本操作命令主要通过HDFS(Hadoop Distributed File System)和YARN(Yet Another Resource Negotiator)两大核心组件实现,涵盖文件管理、任务提交、集群状态查看等核心功能,以下从HDFS shell命令、YARN命令及Hadoop通用命令三个维度展开说明,辅以表格归纳常用操作,帮助系统掌握Hadoop日常运维与开发技能。

HDFS Shell操作命令
HDFS是Hadoop的存储基石,其命令语法类似Linux Shell,支持文件与目录的创建、删除、查看、移动等基础操作,同时针对分布式特性提供权限控制、副本管理等功能,常用命令如下:
文件上传与下载
hadoop fs -put local_file hdfs_path:将本地文件上传至HDFS指定路径,如hadoop fs -put test.txt /input;hadoop fs -get hdfs_path local_path:从HDFS下载文件到本地,如hadoop fs -get /output/result.txt ./;hadoop fs -copyFromLocal local_file hdfs_path:功能与put类似,但会校验本地文件是否存在,适合频繁操作。目录与文件管理
hadoop fs -mkdir -p hdfs_dir:递归创建HDFS目录,-p参数可自动创建父目录;hadoop fs -ls [-R] hdfs_path:列出目录内容,-R递归显示子目录,如hadoop fs -ls /user;hadoop fs -rm [-r] hdfs_path:删除文件或目录,-r用于删除非空目录,如hadoop fs -rm -r /old_data;hadoop fs -mv src_path dest_path:移动或重命名文件/目录,如hadoop fs -mv /input/test.txt /input/backup.txt。文件查看与权限设置
hadoop fs -cat hdfs_file:查看文件内容,类似Linux的cat,如hadoop fs -cat /output/part-r-00000;hadoop fs -text hdfs_file:以文本格式查看压缩文件(如.gz、.bz2);hadoop fs -chown user:group hdfs_path:修改文件所有者与所属组,如hadoop fs -chown hadoop:hadoop /data;hadoop fs -chmod 755 hdfs_path:设置文件权限,如hadoop fs -chmod 644 /input/config.txt。
(图片来源网络,侵删)副本与磁盘空间管理
hadoop fs -setrep 3 hdfs_file:设置文件副本数,如hadoop fs -setrep 2 /large_file(默认副本数为3);hadoop fs -du [-s] [-h] hdfs_path:查看文件大小,-s汇总目录总大小,-h以人类可读格式显示(如KB/MB),如hadoop fs -du -h /user。
YARN资源管理与任务提交命令
YARN负责Hadoop集群资源调度与任务监控,常用命令用于查看集群状态、提交MapReduce任务及管理应用程序。
集群状态查看
yarn node -list:列出集群中所有NodeManager节点状态;yarn application -list:显示当前运行中的应用程序列表,-appTypes MAPREDUCE可筛选MapReduce任务;yarn application -status application_id:查看指定应用的状态(如application_1234567890123_0001)。任务提交与终止
yarn jar my_job.jar MainClass input_path output_path:提交MapReduce任务,需指定JAR包主类、输入输出路径;yarn application -kill application_id:终止运行中的应用程序,如yarn application -kill application_1234567890123_0001。
(图片来源网络,侵删)日志查看
yarn logs -applicationId application_id:获取应用程序的运行日志,便于调试任务失败问题。
Hadoop通用辅助命令
hadoop version:查看Hadoop版本信息;hadoop classpath:输出Hadoop类路径,用于配置环境变量;hadoop fs -help [command]:查看命令详细帮助,如hadoop fs -help put。
常用Hadoop命令速查表
| 功能分类 | 命令示例 | 说明 |
|---|---|---|
| 文件上传 | hadoop fs -put test.txt /input | 本地文件上传至HDFS |
| 目录创建 | hadoop fs -mkdir -p /data/test | 递归创建多级目录 |
| 文件查看 | hadoop fs -cat /output/result.txt | 查看文件内容 |
| 文件删除 | hadoop fs -rm -r /old_data | 删除目录及其子文件 |
| 权限修改 | hadoop fs -chmod 755 /script.sh | 设置文件权限(rwxr-xr-x) |
| 副本设置 | hadoop fs -setrep 2 /large_file | 修改文件副本数为2 |
| 任务提交 | yarn jar wordcount.jar input output | 运行MapReduce任务 |
| 应用状态查看 | yarn application -list | 列出所有应用程序 |
相关问答FAQs
Q1: HDFS中文件上传失败,提示“Permission denied”,如何解决?
A: 主要原因是权限不足,可通过两种方式解决:① 使用hadoop fs -chown修改文件所有者,如hadoop fs -chown $USER:$USER /target_dir;② 在core-site.xml中配置权限检查为严格模式(dfs.permissions.enabled=true),并确保用户对目标目录有执行权限(chmod 755)。
Q2: 提交MapReduce任务后,YARN显示“Container killed on request”,可能的原因及排查步骤?
A: 通常由资源不足或任务内存溢出导致:① 检查YARN资源配置(yarn.scheduler.maximum-allocation-mb),确保申请内存不超过节点上限;② 查看任务日志(yarn logs -applicationId <app_id>),确认是否因代码逻辑错误导致内存溢出;③ 调整MapReduce任务内存参数(如mapreduce.map.memory.mb),适当增加内存分配或优化算法减少内存消耗。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/401342.html<
