菜鸟科技网

Hadoop常用命令有哪些?如何快速掌握?

Hadoop作为大数据处理的核心框架,其命令行工具是用户与Hadoop分布式文件系统(HDFS)及MapReduce等组件交互的重要方式,掌握Hadoop命令不仅能够帮助用户高效管理数据,还能深入理解分布式系统的运行机制,以下将从HDFS常用命令、MapReduce命令、Hadoop集群管理命令以及高级操作技巧四个方面,详细阐述Hadoop命令的使用方法及注意事项。

Hadoop常用命令有哪些?如何快速掌握?-图1
(图片来源网络,侵删)

HDFS常用命令

HDFS是Hadoop的分布式文件系统,其命令格式为hadoop fs [command] [args],部分命令也支持hdfs dfs前缀,以下是核心命令的详解:

文件与目录操作

  • ls:列出指定路径下的文件和目录。hadoop fs /user将显示/user下的所有文件和子目录,若添加-R参数,可递归列出所有子目录内容。
  • mkdir:创建目录。hadoop fs -mkdir /input在根目录下创建input文件夹,使用-p参数可创建多级目录,如hadoop fs -mkdir -p /data/2023
  • put:将本地文件上传至HDFS。hadoop fs -put local.txt /input/将本地local.txt上传至HDFS的/input目录,若目标路径已存在同名文件,操作会失败。
  • get:从HDFS下载文件到本地。hadoop fs -get /output/result.txt local_result.txt将HDFS上的result.txt下载至本地并重命名。
  • rm:删除文件或目录。hadoop fs -rm /input/temp.txt删除单个文件;hadoop fs -rm -r /data递归删除/data目录及其所有内容。
  • mv:移动或重命名文件/目录。hadoop fs -mv /input/file1.txt /output/file1.txtinput移动至output目录。
  • cp:复制文件或目录。hadoop fs -cp /input/file1.txt /output/file1_copy.txtoutput目录下创建副本。

文件信息查看与统计

  • du:显示目录或文件所占空间大小。hadoop fs -du /input返回/input下每个文件的大小(字节),使用-h参数可显示人类可读格式(如KB、MB)。
  • df:查看HDFS整体空间使用情况。hadoop fs -df /显示根目录的已用空间、剩余空间和容量百分比。
  • cat:查看文件内容。hadoop fs -cat /output/result.txt在终端打印文件内容,适合小文件查看。
  • text:将文本文件或压缩文件(如.gz)转换为文本格式输出。hadoop fs -text /input/log.gz可解压并显示gzip文件内容。

权限与所有者管理

  • chmod:修改文件权限。hadoop fs -chmod 755 /input/script.sh将文件权限设置为所有者可读写执行,其他用户可读执行。
  • chown:修改文件所有者。hadoop fs -chown user:group /output/result.txt将文件所有者改为user,所属组改为group

MapReduce命令

MapReduce是Hadoop的核心计算模型,其命令主要通过hadoop jar执行用户程序:

  • jar:运行MapReduce作业。hadoop jar wordcount.jar WordCount /input /output执行wordcount.jar中的WordCount类,输入路径为/input,输出路径为/output
  • jar参数说明
    • -D:配置作业属性,如-D mapreduce.job.reduces=4设置Reducer数量为4。
    • -files:分发本地依赖文件,如-files config.txtconfig.txt分发到各节点。
    • -archives:分发归档文件(如.tar.gz),适用于依赖第三方库的场景。

Hadoop集群管理命令

集群管理通常通过hadoop脚本或yarn命令实现:

  • yarn node -list:列出集群中所有活跃的NodeManager节点。
  • yarn application -list:显示当前运行的所有应用,添加-appStates ALL可查看历史应用。
  • yarn application -kill <appId>:终止指定ID的应用。
  • hadoop job -list(旧版):列出MapReduce作业(已被YARN命令取代)。
  • hadoop job -kill <jobId>:终止指定ID的作业。

高级操作技巧

  1. 文件压缩:上传大文件时可启用压缩减少存储空间。hadoop fs -put -z local.txt /input/上传时启用gzip压缩。
  2. 并行操作:使用-threads参数(如hadoop fs -put -threads 10 local_dir /input/)提高文件上传/下载并行度。
  3. 快照管理:HDFS支持快照功能,通过hdfs dfsadmin -allowSnapshot /path启用快照,再通过hdfs dfs -createSnapshot /path snapshot_name创建快照,便于数据备份与恢复。

命令使用注意事项

  • 路径格式:HDFS路径需以开头,如/input/file.txt,避免使用相对路径。
  • 权限问题:操作文件需确保当前用户对目标路径有足够权限,否则会报Permission denied错误。
  • 数据一致性:在写入或删除操作后,建议使用hadoop fs -stat检查文件状态,确保操作成功。
  • 性能优化:处理大文件时,避免频繁使用cattext命令,以免因IO压力影响集群性能。

以下为Hadoop常用命令速查表:

Hadoop常用命令有哪些?如何快速掌握?-图2
(图片来源网络,侵删)
功能分类 命令 示例 说明
文件列表 ls hadoop fs -ls /input 列出目录内容
创建目录 mkdir hadoop fs -mkdir -p /data/2023 创建多级目录
上传文件 put hadoop fs -put local.txt /input/ 本地文件上传至HDFS
下载文件 get hadoop fs -get /output/result.txt . 下载文件到当前目录
删除文件 rm hadoop fs -rm -r /data 递归删除目录
移动/重命名 mv hadoop fs -mv /input/file1.txt /output/ 移动文件或重命名
查看文件大小 du hadoop fs -du -h /input 显示文件大小(人类可读格式)
查看文件内容 cat hadoop fs -cat /output/result.txt 打印文件内容
运行MapReduce jar hadoop jar wordcount.jar WordCount /input /output 执行MapReduce作业
查看应用列表 yarn application -list yarn application -list -appStates RUNNING 查看运行中的应用

相关问答FAQs

Q1: Hadoop命令执行时出现“FileNotFound”错误,可能的原因及解决方法?
A: 可能原因包括:HDFS路径错误、文件不存在或权限不足,解决方法:

  1. 检查路径是否正确,确保以开头且文件名拼写无误;
  2. 使用hadoop fs -ls确认文件是否存在;
  3. 使用hadoop fs -chmod调整文件权限,或使用具有足够权限的用户执行命令。

Q2: 如何优化HDFS文件上传/下载的性能?
A: 可通过以下方式优化:

  1. 使用-threads参数增加并行度,如hadoop fs -put -threads 20 local_dir /input/
  2. 启用文件压缩(如gzip或snappy),减少数据传输量;
  3. 避免在高峰期执行大文件操作,或使用distcp工具实现集群间并行复制。
分享:
扫描分享到社交APP
上一篇
下一篇