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

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 读取数据块。
        客户端 汇总数据块,呈现完整文件。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • EnableFeignClients详解
  • 函数的形状怎么定义?
  • 用Qwt进行图表和数据可视化开发
  • GD32F303之CAN通信
  • EasyExcel批量读取Excel文件数据导入到MySQL表中
  • 二分查找中while的判断条件
  • 11.FreeRTOS_事件组
  • 使用Python和MediaPipe实现手势虚拟鼠标控制
  • 自动驾驶论文总结
  • SQL 索引
  • PyTorch DataLoader 学习
  • 2024前端面试真题【CSS篇】
  • 【数据结构】线性表----队列详解
  • 【2024_CUMCM】时间序列3-一元时间序列分析的模型
  • Spring容器加载Bean和JVM加载类
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • canvas 五子棋游戏
  • django开发-定时任务的使用
  • Less 日常用法
  • Logstash 参考指南(目录)
  • miaov-React 最佳入门
  • MySQL主从复制读写分离及奇怪的问题
  • Phpstorm怎样批量删除空行?
  • select2 取值 遍历 设置默认值
  • spark本地环境的搭建到运行第一个spark程序
  • TCP拥塞控制
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 聊一聊前端的监控
  • 如何解决微信端直接跳WAP端
  • 学习笔记:对象,原型和继承(1)
  • 一个JAVA程序员成长之路分享
  • Spring第一个helloWorld
  • 选择阿里云数据库HBase版十大理由
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​决定德拉瓦州地区版图的关键历史事件
  • #微信小程序(布局、渲染层基础知识)
  • (~_~)
  • (30)数组元素和与数字和的绝对差
  • (4) PIVOT 和 UPIVOT 的使用
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)linux使用docker容器运行mysql
  • (二)PySpark3:SparkSQL编程
  • (二)构建dubbo分布式平台-平台功能导图
  • (分布式缓存)Redis持久化
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (五)activiti-modeler 编辑器初步优化
  • (一)、python程序--模拟电脑鼠走迷宫
  • (转)可以带来幸福的一本书
  • *p++,*(p++),*++p,(*p)++区别?