HDFS体系架构&文件写入/下载流程

HDFS体系架构

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop项目中的一个核心组件,旨在以高容错、高吞吐量来处理大规模数据集。它的体系架构由以下几个主要部分组成:Client,NameNode,DataNode,SecondaryNameNode

1.Client:客户端

        1.文件切分
        2.与NameNode交互,获取文件元数据信息
        3.与DataNode交互,读取或写入数据
        4.与HDFS进行交互

2.NameNode:Master(管理者)

        1.管理HDFS的元数据空间
        2.管理block块的映射信息
        3.接受DataNode心跳,管理DataNode信息
        4.处理客户端的读写请求

3.DataNode:Slave(NN下达命令执行实际的操作)

        1. 存储实际的数据块
        2.执行数据块的读写操作
        3.向NameNode发送心跳,以及block块汇报

4.Secondary NameNode 

        1.并非NameNode的热备份,当NameNode停止服务的时候不能马上代替NameNode
        2.辅助NameNode,分担工作量
        3.定期合并fsimage和editslog,推送给NameNode
        4.紧急情况下可以辅助恢复namenode

HDFS写入/下载流程

        客户端 请求 NameNode 创建一个新文件。
        NameNode 检查文件是否已存在,并验证客户端权限。
        NameNode 创建一个新文件条目,返回给客户端数据块的位置信息(即哪些 DataNode 将存储数据块的副本)。
        客户端 按顺序将数据块写入到指定的 DataNode。
        DataNode 将数据块复制到其他 DataNode 以确保副本数量。
        DataNode 向 NameNode 报告已存储的数据块信息。


        客户端 请求 NameNode 读取文件。
        NameNode 返回文件的元数据和数据块位置信息。
        客户端 按顺序从相应的 DataNode 读取数据块。
        客户端 汇总数据块,呈现完整文件。

相关推荐

  1. HDFS体系架构&文件写入/下载流程

    2024-07-11 12:30:02       22 阅读
  2. HDFS架构

    2024-07-11 12:30:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 12:30:02       53 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 12:30:02       56 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 12:30:02       46 阅读
  4. Python语言-面向对象

    2024-07-11 12:30:02       57 阅读

热门阅读

  1. 企业微信群发限制的背后逻辑,一文读懂!

    2024-07-11 12:30:02       20 阅读
  2. Stable Diffusion与AI艺术:探索人工智能的创造力

    2024-07-11 12:30:02       23 阅读
  3. vue3 ts 不使用 if switch 来决定使用什么函数

    2024-07-11 12:30:02       17 阅读
  4. 拖动未来:WebKit 完美融合拖放API的交互艺术

    2024-07-11 12:30:02       20 阅读
  5. helm安装解决无授权问题

    2024-07-11 12:30:02       18 阅读
  6. php获取,昨,今,后天.... 本周,月,年...日期时间戳

    2024-07-11 12:30:02       22 阅读
  7. 大话C语言:第28篇 内存分配与释放

    2024-07-11 12:30:02       18 阅读
  8. MySQL 中删除重复的数据并只保留一条

    2024-07-11 12:30:02       18 阅读
  9. spring boot 3.2.x 使用CDS加速启动

    2024-07-11 12:30:02       22 阅读
  10. 37.深度学习中的梯度下降法及其实现

    2024-07-11 12:30:02       20 阅读
  11. Spring Boot与Spring MVC的区别和联系

    2024-07-11 12:30:02       22 阅读
  12. 代码随想录-DAY⑥-哈希表——leetcode 383 | 454

    2024-07-11 12:30:02       21 阅读
  13. linux去掉行首的#字符

    2024-07-11 12:30:02       19 阅读
  14. 常见的负载均衡算法和实现方式

    2024-07-11 12:30:02       22 阅读