Hadoop入门:HDFS基本操作

Hadoop分布式文件系统(HDFS)是Hadoop生态的核心组件,用于存储大规模数据集。它通过分布式架构实现高容错性和高吞吐量。本指南将逐步介绍HDFS的基本操作,帮助您快速上手。操作基于命令行工具hadoop fs,所有命令在Hadoop集群环境中运行。

1. 连接到HDFS

在开始前,确保您已登录到Hadoop集群的节点(如NameNode或Edge Node)。使用SSH连接后,启动Hadoop环境。

2. 列出HDFS文件和目录

使用-ls命令查看HDFS根目录或指定路径的内容。这是文件系统导航的基础。

  • 命令格式:hadoop fs -ls <路径>
  • 示例:列出根目录下的文件。
    hadoop fs -ls /
    

    输出示例:
    Found 2 items
    drwxr-xr-x   - user supergroup          0 2023-10-01 10:00 /user
    drwxr-xr-x   - user supergroup          0 2023-10-01 10:01 /data
    

3. 创建目录

使用-mkdir命令在HDFS中创建新目录。HDFS目录结构类似于Linux文件系统。

  • 命令格式:hadoop fs -mkdir <目录路径>
  • 示例:在根目录下创建/test目录。
    hadoop fs -mkdir /test
    

    验证创建:
    hadoop fs -ls /
    

4. 上传文件到HDFS

使用-put-copyFromLocal命令将本地文件上传到HDFS。上传时,文件会被分块存储(块大小默认为128MB)。

  • 命令格式:hadoop fs -put <本地文件路径> <HDFS目标路径>
  • 示例:上传本地文件data.txt到HDFS的/test目录。
    hadoop fs -put /local/path/data.txt /test/data.txt
    

    验证上传:
    hadoop fs -ls /test
    

5. 下载文件到本地

使用-get-copyToLocal命令从HDFS下载文件到本地系统。

  • 命令格式:hadoop fs -get <HDFS文件路径> <本地目标路径>
  • 示例:下载HDFS文件/test/data.txt到本地。
    hadoop fs -get /test/data.txt /local/path/downloaded_data.txt
    

6. 查看文件内容

使用-cat命令查看HDFS文件的内容(适用于文本文件)。

  • 命令格式:hadoop fs -cat <文件路径>
  • 示例:查看/test/data.txt的内容。
    hadoop fs -cat /test/data.txt
    

7. 删除文件或目录

使用-rm命令删除文件,-rm -r命令递归删除目录及内容。操作需谨慎,HDFS有回收站机制(默认启用),但删除后可能无法恢复。

  • 命令格式:hadoop fs -rm <文件路径>hadoop fs -rm -r <目录路径>
  • 示例:删除文件/test/data.txt
    hadoop fs -rm /test/data.txt
    

    示例:删除目录/test及其所有内容。
    hadoop fs -rm -r /test
    

8. 检查文件状态

使用-stat命令获取文件详细信息,如大小、修改时间。文件大小通常以字节为单位,例如文件大小$s$字节($s$为整数)。

  • 命令格式:hadoop fs -stat <格式> <文件路径>
  • 示例:获取文件/user/data.log的大小和块信息。
    hadoop fs -stat %b /user/data.log  # 输出块大小
    hadoop fs -du -h /user/data.log    # 查看文件总大小(人类可读格式)
    

注意事项
  • 权限管理:HDFS使用类似Linux的权限模型(用户、组、其他),确保您有适当权限执行操作。默认情况下,超级用户(如hdfs)有完全控制权。
  • 容错性:HDFS文件默认复制因子为$3$(即每个块存储在三台DataNode上),提高可靠性。您可以通过配置修改此值。
  • 性能优化:上传大文件时,HDFS自动分块处理;下载时,使用-get命令并行获取块以加速。
  • 常见错误:如果命令失败,检查路径是否存在、权限是否足够或集群状态(使用hadoop dfsadmin -report诊断)。

通过以上步骤,您已掌握HDFS基本操作。实践时,建议在测试环境中操作,避免影响生产数据。深入学习可参考Hadoop官方文档或相关教程。

更多推荐