Hadoop作为分布式存储和计算框架,其管理命令是运维和开发人员日常操作的核心工具,涵盖了集群状态监控、文件管理、任务控制等多个维度,以下从核心命令、集群管理、文件系统操作、任务调度及安全配置等方面展开详细说明,并结合表格归纳常用命令的用法及场景。

集群状态与节点管理
Hadoop集群的健康状态监控是运维的基础,主要通过hdfs dfsadmin和yarn node命令实现。hdfs dfsadmin -report可查看集群中各DataNode的存储容量、磁盘使用率及状态(如是否正常、下线),帮助快速定位节点异常,若需强制退出某个故障节点,可使用hdfs dfsadmin -report获取节点ID后,执行hdfs dfsadmin -report -deadNodes查看死亡节点,再通过hdfs --refreshNodes刷新节点列表,对于YARN集群,yarn node -list能列出所有NodeManager的状态,包括节点ID、可用资源(CPU/内存)、运行中的容器数;若需隔离某个节点(如资源异常),可执行yarn node -refreshNodes或通过RM Web UI手动标记节点为“Decommissioned”。
HDFS文件系统管理
HDFS文件操作是Hadoop最频繁的功能之一,hdfs dfs命令(或hadoop fs)提供了丰富的子命令,文件上传下载中,-put用于本地到HDFS(如hdfs dfs -put /local/path /hdfs/path),-get反之;-copyFromLocal与-put类似,但会显示进度条,适合大文件,目录管理方面,-mkdir -p可递归创建多级目录,-rm -r递归删除文件/目录,-mv实现跨目录移动,文件查看中,-cat输出文件内容到终端,-tail -f实时追踪日志文件末尾,-du -h显示目录大小(如hdfs dfs -du -h /user),权限控制通过-chown(修改所有者)、-chmod(修改权限)、-chgrp(修改组)实现,例如hdfs dfs -chown hadoop:hadoop /data将/data目录权限赋予hadoop用户。hdfs dfsadmin -safemode enter/leave可安全模式控制,集群启动时自动进入安全模式(只允许读操作),执行元数据维护后需退出安全模式才能进行写操作。
YARN资源与任务管理
YARN的任务调度与资源监控主要通过yarn命令实现,作业提交使用yarn jar,如yarn jar mapreduce-examples.jar wordcount /input /output,其中-D mapreduce.job.queuename=root.queue可指定队列,任务查看中,yarn application -list列出所有应用(状态包括RUNNING、SUCCESS、FAILED),yarn application -status <app_id>查看具体应用进度,yarn logs -applicationId <app_id>获取应用日志,资源管理方面,yarn queue -list显示队列列表,yarn rmadmin -refreshQueues刷新队列配置;若需终止应用,执行yarn application -kill <app_id>,对于容器级监控,yarn container -list <app_id>可查看容器的资源使用情况(CPU、内存),帮助定位资源瓶颈。
Hadoop集群配置与日志管理
集群配置修改需谨慎,核心文件包括core-site.xml(HDFS地址)、hdfs-site.xml(副本数、数据目录)、yarn-site.xml(RM地址、资源调度器),修改后需同步到所有节点并重启相关服务(hdfs --daemon start/stop namenode/datanode),日志管理中,Hadoop日志默认存放在$HADOOP_HOME/logs,NameNode日志namenode.log、DataNode日志datanode.log、ResourceManager日志resourcemanager.log是排查问题的关键,可通过grep过滤错误信息(如grep -i error namenode.log)。

安全与权限控制
在生产环境中,Hadoop需启用Kerberos认证和ACL权限,启用Kerberos后,用户需通过kinit -kt keytab.principal获取票据,否则无法操作HDFS/YARN,ACL权限可通过hdfs dfs -setfacl -m user:hadoop:r-x /data为用户hadoop添加读执行权限,-getfacl查看ACL详情。hdfs dfsadmin -setQuota <quota> <path>可设置目录配额(如限制目录最大文件数或存储空间),防止单个目录占用过多资源。
常用Hadoop管理命令速查表
| 功能分类 | 命令示例 | 说明 |
|---|---|---|
| 集群状态 | hdfs dfsadmin -report |
查看HDFS集群节点状态、存储容量 |
yarn node -list |
列出YARN NodeManager状态及资源 | |
| 文件操作 | hdfs dfs -put /local /hdfs |
本地文件上传至HDFS |
hdfs dfs -du -h /user |
查看HDFS目录大小(人类可读格式) | |
hdfs dfs -chown user:group /path |
修改HDFS文件/目录所有者 | |
| 任务管理 | yarn jar job.jar -input /in -output /out |
提交MapReduce作业 |
yarn application -kill <app_id> |
终止指定应用 | |
| 安全模式 | hdfs dfsadmin -safemode leave |
退出HDFS安全模式,允许写操作 |
| 配置刷新 | hdfs --refreshNodes |
刷新HDFS节点列表(用于下线/上线节点) |
相关问答FAQs
Q1: 如何判断HDFS集群中哪个节点存在磁盘空间不足问题?
A: 可通过hdfs dfsadmin -report命令查看每个DataNode的Disk Space Used和Disk Capacity,若某个节点的Disk Space Used接近Disk Capacity(如超过90%),则可能存在磁盘空间不足,结合hdfs dfs -du /hdfs/path定位具体目录,清理无用文件或增加节点容量。
Q2: YARN应用运行失败后,如何快速定位错误原因?
A: 首先通过yarn application -list找到失败应用的ApplicationId,然后执行yarn logs -applicationId <app_id> > app.log将日志导出到本地,重点查看日志中的Exception或Error关键字,常见原因包括:输入路径不存在、内存不足(可通过yarn application -status <app_id>查看Container资源申请情况)、代码逻辑错误等,若日志信息不足,可结合YARN RM Web UI的Logs链接查看详细日志堆栈。

