菜鸟科技网

Hadoop基本命令有哪些核心操作?

Hadoop 作为分布式系统基础框架,其命令行操作是日常数据处理的核心技能,主要涵盖 HDFS 文件系统管理和 YARN 资源调度两大模块,以下从常用操作维度展开说明,结合具体命令示例及场景说明。

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

HDFS 文件系统管理命令

HDFS(Hadoop Distributed File System)是 Hadoop 的存储核心,命令格式通常为 hadoop fs <subcommand>hdfs dfs <subcommand>,两者功能基本一致。

基础文件操作

  • 创建目录hadoop fs -mkdir /data/input(在根目录下创建 input 文件夹,-p 参数可递归创建多级目录,如 hadoop fs -mkdir -p /data/input/logs)。
  • 上传本地文件到 HDFShadoop fs -put local.txt /data/input/(将本地 local.txt 上传至 HDFS 的 /data/input 目录,-f 参数可覆盖已存在文件)。
  • 下载 HDFS 文件到本地hadoop fs -get /data/input/local.txt ./(将 HDFS 文件下载至当前本地目录,-p 可保留原始路径)。
  • 移动/重命名文件hadoop fs -mv /data/input/old.txt /data/output/new.txt(将 old.txt 移至 output 目录并重命名为 new.txt,适用于跨目录操作)。
  • 删除文件/目录hadoop fs -rm /data/input/temp.txt(删除文件,-r 参数可递归删除目录,如 hadoop fs -rm -r /data/input)。

文件查看与权限管理

  • 查看文件内容hadoop fs -cat /data/input/data.txt(输出文件内容到终端,适合小文件;大文件可用 hadoop fs -head /data/input/data.txt 查看前 1000 行)。
  • 设置文件权限hadoop fs -chmod 755 /data/input(权限格式同 Linux,755 表示所有者可读写执行,组用户和其他用户可读执行)。
  • 查看文件状态hadoop fs -stat /data/input/data.txt(输出文件大小、修改时间、权限等信息,-stat "%y %n" 可自定义输出格式)。

高级操作

  • 合并下载多个文件hadoop fs -getmerge /data/input/*.txt ./merged.txt(将 input 目录下所有 txt 文件合并为本地 merged.txt)。
  • 文件副本数设置hadoop fs -setrep 3 /data/input/data.txt(设置文件副本数为 3,仅影响后续写入,已存在文件需重新写入生效)。

YARN 资源调度命令

YARN(Yet Another Resource Negotiator)负责集群资源管理和任务调度,命令通过 yarn 前缀调用。

任务提交与监控

  • 提交 MapReduce 任务yarn jar mapreduce-examples.jar wordcount /data/input /data/output(运行 WordCount 示例,输入路径 /data/input,输出路径 /data/output)。
  • 查看任务状态yarn application -list(列出所有任务,-appStates RUNNING 可筛选运行中任务)。
  • 查看任务日志yarn logs -applicationId application_1234567890123_0001(通过任务 ID 查看详细日志,-containerId 可指定容器日志)。
  • 杀死任务yarn application -kill application_1234567890123_0001(终止指定 ID 的任务)。

资源与集群状态

  • 查看集群节点状态yarn node -list(显示所有节点及资源使用情况,-states ACTIVE 可筛选活跃节点)。
  • 查看队列资源使用yarn queue -status default(查看 default 队列的资源分配和使用情况)。

常用命令速查表

操作类型 命令示例 功能说明
创建目录 hadoop fs -mkdir -p /data/input 递归创建多级目录
上传文件 hadoop fs -put local.txt /data/input 本地文件上传至 HDFS
下载文件 hadoop fs -get /data/input/file.txt ./ HDFS 文件下载至本地
查看文件内容 hadoop fs -cat /data/input/file.txt 输出文件内容到终端
提交任务 yarn jar jarpath MainClass input output 提交 MapReduce/Spark 任务
查看任务列表 yarn application -list -appStates RUNNING 列出运行中任务

相关问答 FAQs

Q1:Hadoop 上传大文件时速度很慢,如何优化?
A:可通过以下方式优化:

  1. 调整 HDFS 块大小(如 hdfs dfs -D dfs.blocksize=256m -put large_file /data/,避免小文件过多);
  2. 增加 MapReduce 任务并行度(通过 -D mapreduce.job.maps=50 提高并发数);
  3. 检查网络带宽和节点负载,避免在集群高峰期上传大文件。

Q2:执行 Hadoop 命令时提示 “Permission denied”,如何解决?
A:通常为权限问题,解决方法:

Hadoop基本命令有哪些核心操作?-图2
(图片来源网络,侵删)
  1. 使用 hadoop fs -chmod 修改文件/目录权限(如 hadoop fs -chmod 777 /data/input);
  2. 检查当前用户是否属于 Hadoop 超级用户组(默认为 supergroup,可通过 hdfs dfs -chown -R user:group /data/input 修改所有者);
  3. 确保 core-site.xml 中配置了允许的用户权限(如 <property><name>hadoop.permission.supergroup</name><value>supergroup</value></property>)。
Hadoop基本命令有哪些核心操作?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇