菜鸟科技网

Hadoop基本操作命令有哪些?

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

Hadoop基本操作命令有哪些?-图1
(图片来源网络,侵删)

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基本操作命令有哪些?-图2
    (图片来源网络,侵删)
  • 副本与磁盘空间管理
    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

    Hadoop基本操作命令有哪些?-图3
    (图片来源网络,侵删)
  • 日志查看
    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),适当增加内存分配或优化算法减少内存消耗。

分享:
扫描分享到社交APP
上一篇
下一篇