当前位置: 首页 > news >正文

大数据(3) 分布式文件系统HDFS

一、分布式文件系统

1.计算机集群的基本架构

        集群中的计算机节点存放在机架上,每个机架可以存放8~64个节点,同一机架上的不同节点之间通过网络互联,多个不同机架之间采用另一级网络或交换机互连。

二、HDFS 定义

        HDFS(Hadoop Distributed File System) 是 Hadoop 核心模块之一,是一个分布式文件系统,专为大规模数据存储和处理而设计,具有高容错性、高吞吐量等特点,适合部署在普通硬件组成的集群上。


三、HDFS 的主要特性

特性简要描述
高容错性数据自动备份多份(默认3份),即使某些节点宕机,系统依然可用
高吞吐量适合一次读写大文件,提高整体数据处理效率
高可扩展性可通过添加节点横向扩展系统容量
适合大文件设计初衷是处理 TB 甚至 PB 级的大文件,不适合频繁修改的小文件
一次写入,多次读取写入过程不可修改,适合日志、大数据分析等场景

四、HDFS 架构组成

HDFS 采用 主从结构,由以下核心组件组成:

1. NameNode(名称节点)【主节点】

  • 存储元数据:如文件路径、权限、每个文件分成多少块、每块在哪些 DataNode 上等

  • 管理文件系统的命名空间

  • 客户端上传、下载文件时,NameNode 负责调度,不直接处理数据

2. DataNode(数据节点)【从节点】

  • 实际存储文件数据块(Block)

  • 每个文件被分成多个 128MB(默认)大小的数据块,分别存放在不同的 DataNode 上

  • 定期向 NameNode 报告存储状态(心跳)


五、NameNode 和 DataNode 的区别

项目NameNodeDataNode
角色主节点从节点
职责存储元数据、调度任务存储实际文件块,执行读写操作
是否存数据❌ 不存文件数据✅ 存储实际数据块
数量通常只有 1 个主 + 1 个备用可以有多个
故障影响极大,元数据丢失则文件系统不可用影响较小,可用副本恢复

六、Secondary NameNode(二级名称节点)

  • 不是主节点的备份!

  • 主要作用:辅助 NameNode 做元数据快照合并(Checkpoint)

  • 避免 NameNode 的edits日志文件无限增长

  • 运行机制:

    • 周期性从 NameNode 拉取fsimage(元数据快照)和edits(操作日志)

    • 合并成新的fsimage,然后传回 NameNode

注意:它不能替代 NameNode,NameNode 宕机后不能自动接管工作。


七、冷热备份

HDFS 提供了以下方式提升系统可用性:

1. 冷备份(Cold Standby)

  • 手动备份 NameNode 元数据文件,如 fsimageedits

  • 一旦主 NameNode 出问题,需要手动恢复数据启动新 NameNode

  • 缺点:恢复慢、人工干预多

2. 热备份(Hot Standby)— 高可用 NameNode(HA)

  • 使用 Zookeeper + JournalNode 机制实现 自动主备切换

  • 两个 NameNode:一个 Active,一个 Standby

  • JournalNode 保存日志,两者保持同步

  • Active NameNode 宕机时,Zookeeper 自动切换 Standby 为新的 Active


八、HDFS 常见命令讲解(基于 Hadoop 3.x+)

使用 HDFS 命令前,一般格式是:

hdfs dfs -[命令] [路径]


1. 目录操作

命令功能示例
-mkdir创建目录hdfs dfs -mkdir /user/hadoop
-mkdir -p创建多层目录hdfs dfs -mkdir -p /user/hadoop/input
-ls列出目录内容hdfs dfs -ls /user/hadoop
-ls -R递归列出目录内容hdfs dfs -ls -R /user/hadoop
-rmdir删除空目录hdfs dfs -rmdir /user/tmp

2. 文件上传下载

命令功能示例
-put上传本地文件到 HDFShdfs dfs -put ~/file.txt /user/hadoop/
-copyFromLocal上传(同 put)hdfs dfs -copyFromLocal file.txt /user/hadoop/
-get下载 HDFS 文件到本地hdfs dfs -get /user/hadoop/file.txt ~/
-copyToLocal下载(同 get)hdfs dfs -copyToLocal /user/hadoop/file.txt ~/

3. 文件删除与移动

命令功能示例
-rm删除文件hdfs dfs -rm /user/hadoop/file.txt
-rm -r删除目录或非空目录hdfs dfs -rm -r /user/hadoop/input
-mv移动或重命名文件hdfs dfs -mv /user/hadoop/file.txt /user/hadoop/file1.txt

4. 查看文件内容

命令功能示例
-cat查看文件全部内容hdfs dfs -cat /user/hadoop/file.txt
-tail查看文件最后几行hdfs dfs -tail /user/hadoop/file.txt
-head查看文件前若干字节hdfs dfs -head /user/hadoop/file.txt
-text将 SequenceFile 等转为文本查看hdfs dfs -text /user/hadoop/seqfile

5. 其他常用命令

命令功能示例
-du查看文件/目录占用空间hdfs dfs -du /user/hadoop/
-dus显示目录总占用空间hdfs dfs -dus /user/hadoop/
-df查看 HDFS 使用情况hdfs dfs -df -h
-stat查看文件信息hdfs dfs -stat /user/hadoop/file.txt
-count查看文件数/目录数/空间占用hdfs dfs -count /user/hadoop
-checksum获取文件校验码hdfs dfs -checksum /user/hadoop/file.txt
-appendToFile追加内容到文件末尾hdfs dfs -appendToFile a.txt /user/hadoop/file.txt

        本篇博客对分布式文件系统HDFS进行了介绍,便于回顾。 

http://www.dtcms.com/a/239357.html

相关文章:

  • LLMs 系列科普文(15)
  • 第13次01:广告及商品数据呈现
  • MS8312A 车规 精密、低噪、CMOS、轨到轨输入输出运算放大器,用于传感器、条形扫描器
  • 2025-06-08 思考-人被基因和社会关系双重制约
  • 打卡day48
  • FlexRay总线
  • DAY 45 Tensorboard使用介绍
  • MATLAB R2025a|Win中文|仿真建模|安装教程
  • Java中线程的常用方法
  • 批量修改文件夹名 修改文件夹名
  • Python初体验学习笔记
  • 深入解析机器学习的心脏:损失函数及其背后的奥秘
  • 第11篇:数据库中间件系统可配置化设计与动态规则加载机制
  • leetcode.多数元素
  • C语言中的文件操作
  • 【文件传输脚本】
  • Linux 内核内存管理子系统全面解析与体系构建
  • 2025-06-02-数据库的分类和应用
  • (三十四)Android图片列表与点击弹窗展示大图完整教程
  • 磁盘空间清道夫FolderSize 系列:可视化分析 + 重复文件识别,
  • 百度首页布局:固定右侧盒子不随界面缩小掉下去
  • (二)原型模式
  • python训练营打卡第48天
  • Python Web项目打包(Wheel)与服务器部署全流程
  • Pyppeteer企业级爬虫实战:从动态渲染到反反爬突破(2025终极指南)
  • 正常流程、可选流程和异常
  • 智能职业发展系统:AI驱动的职业规划平台技术解析
  • MySQL:CTE 通用表达式
  • 第二十八章 字符串与数字
  • 基于SpringBoot实现的大创管理系统设计与实现【源码+文档】