大数据-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程

52 阅读3分钟

点一下关注吧!!!非常感谢!!持续更新!!!

🚀 AI篇持续更新中!(长期更新)

目前2025年06月05日更新到: AI炼丹日志-28 - Audiblez 将你的电子书epub转换为音频mp3 做有声书,持续打造实用AI工具指南!📐🤖

💻 Java篇正式开启!(300篇)

目前2025年06月05日更新到: Java-39 深入浅出 Spring - AOP切面增强 核心概念 通知类型 XML+注解方式 附代码 MyBatis 已完结,Spring 正在火热更新中,深入浅出助你打牢基础!

📊 大数据板块已完成多项干货更新(300篇):

包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈! 目前2025年06月05日更新到: 大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解

👉 点个关注,不迷路!后续还将持续更新更多大模型+数据智能+工程实战内容,敬请期待!

章节内容

上一节完成:

  • HDFS的简介内容
  • HDFS基础原理
  • HDFS读文件流程
  • HDFS写文件流程

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

在这里插入图片描述 HDFS(Hadoop Distributed File System)是 Hadoop 框架中专为大规模数据存储设计的 分布式文件系统。它可以运行在廉价的硬件集群上,提供 高容错性、高吞吐量、大文件支持能力,并且适用于一次写入、多次读取的场景。

设计思想

数据分块(Block-based Storage)

  • 默认每个文件被分割为多个 128MB(或旧版本默认64MB)的块(Block)。
  • 每个块被冗余复制(默认3份)存储在不同的 DataNode 上,保证数据的容错性。

主从架构(Master-Slave)

  • NameNode:管理文件系统的元数据(如目录结构、文件到块的映射、块到 DataNode 的映射)。
  • DataNode:存储实际数据块,定期向 NameNode 报告存活情况和数据块状态。
           +----------------+
           |   Client       |
           +----------------+
              |        |
              |        V
       +-------------+        +-------------+
       | NameNode    |<-----> | Secondary   | (定期合并EditLog和FsImage)
       |             |        | NameNode    |
       +-------------+        +-------------+
              |
              V
     +----------------------------+
     |       DataNodes           |
     |  [块1][块2]...[块N]       |
     +----------------------------+

文件上传流程

  • 客户端向 NameNode 请求上传;
  • NameNode 划分数据块并指定 DataNode;
  • 客户端将数据流按顺序写入多个 DataNode(管道写入);
  • NameNode 更新元数据。

文件读取流程

  • 客户端向 NameNode 查询文件元数据;
  • 获取到数据块列表及其位置;
  • 从对应 DataNode 中读取数据块内容;
  • 客户端本地拼接成完整文件。

容错机制

数据块副本(Block Replication)

  • 默认每个数据块有3个副本,分布在不同节点;
  • 某个 DataNode 宕机后,NameNode 会安排其他 DataNode 复制缺失的副本。

心跳机制

  • DataNode 每隔一定时间向 NameNode 发送心跳,若超时未收到,认为其宕机。

适用场景

  • 大数据分析平台(如 Spark、Hive、MapReduce 后端存储);
  • 物联网日志采集;
  • 视频、图像等大文件归档;
  • 日志归档与批量处理。

基础语法

hadoop fs

在这里插入图片描述

启动集群

start-dfs.sh
start-yarn.sh

查看目录

hadoop fs -ls /

在这里插入图片描述

创建目录

hadoop fs -mkdir -p /wzk/test

在这里插入图片描述

上传文件

hadoop fs -moveFromLocal ./1.txt /wzk/test
hadoop fs -ls /
hadoop fs -ls /wzk/test

在这里插入图片描述

下载文件

hadoop fs -copyToLocal /wzk/test/1.txt ./

在这里插入图片描述

查看文件

hadoop fs -cat /wzk/test/1.txt

在这里插入图片描述

CP操作

hadoop fs -cp /wzk/test/1.txt /1.txt

在这里插入图片描述

MV操作

hadoop fs -mv /1.txt /wzk/test/

在这里插入图片描述

GET操作

hadoop fs -get /wzk/test/1.txt ./

在这里插入图片描述

PUT操作

hadoop fs -put ./1.txt /wzk/test

删除文件

hadoop fs -rm /wzk/test

删除空目录

hadoop fs -mkdir /wzk01
hadoop fs -rmdir /wzk01