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

大数据Hadoop-HDFS_架构、读写流程

大数据Hadoop-HDFS

基本系统架构

HDFS架构包含三个部分:NameNode,DataNode,Client。
NameNode:NameNode用于存储、生成文件系统的元数据。运行一个实例。
DataNode:DataNode用于存储实际的数据,将自己管理的数据块上报给NameNode ,运行多个实例。
Client:支持业务访问HDFS,从NameNode ,DataNode获取数据返回给业务。多个实例,和业务一起运行。
在这里插入图片描述

HDFS数据写入流程

在这里插入图片描述
HDFS数据写入流程如下:
(1)业务应用调用HDFS Client提供的API,请求写入文件。
(2)HDFS Client联系NameNode,NameNode在元数据中创建文件节点。
(3)业务应用调用write API写入文件。
(4)HDFS Client收到业务数据后,从NameNode获取到数据块编号、位置信息后,联系DataNode,并将需要写入数据的DataNode建立起流水线。完成后,客户端再通过自有协议写入数据到DataNode1,再由DataNode1复制到DataNode2, DataNode3。
(5)写完的数据,将返回确认信息给HDFS Client。
(6)所有数据确认完成后,业务调用HDFS Client关闭文件。
(7)业务调用close, flush后HDFS Client联系NameNode,确认数据写完成,NameNode持久化元数据。

HDFS数据读取流程

在这里插入图片描述

HDFS数据读取流程如下:
(1)业务应用调用HDFS Client提供的API打开文件。
(2)HDFS Client联系NameNode,获取到文件信息(数据块、DataNode位置信息)。
(3)业务应用调用read API读取文件。
(4)HDFS Client根据从NameNode获取到的信息,联系DataNode,获取相应的数据块。(Client采用就近原则读取数据)。
(5)HDFS Client会与多个DataNode通讯获取数据块。
(6)数据读取完成后,业务调用close关闭连接。


http://www.kler.cn/news/155142.html

相关文章:

  • 【小沐学Python】Python实现Web服务器(Flask+celery,生产者-消费者)
  • LeetCode每日一题 | LeetCode-1094.拼车
  • 栈实现队列,力扣
  • ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO
  • MVCC-
  • 【.NET全栈】.net的微软API接口与.NET框架源码
  • LLM推理部署(三):一个强大的LLM生态系统GPT4All
  • AI - FlowField(流场寻路)
  • 2023年第十二届数学建模国际赛小美赛B题工业表面缺陷检测求解分析
  • 外包干了2年,技术退步明显。。。
  • solidity案例详解(五)能源电力竞拍合约
  • FDM3D打印系列——天秤座黄金圣斗士模型制作全过程视频
  • 微服务的流量管理-服务网格
  • 使用Draw.io制作泳道图
  • CSS3 修改滚动条样式
  • ThreadLocal的理解和使用
  • IntelliJ IDEA 之初体验(上)
  • [LeetCode周赛复盘] 第 374 场周赛20231203
  • 图像生成MaaS服务
  • chatgpt prompt提示词
  • abapgit 安装及使用
  • Redis集合对象
  • 对某登录站点的JS前端逆向思路
  • Git中如何按日期进行checkout
  • React--引入第三方插件时,标签名是小写报错问题
  • 创意项目开源,文生图、排序/优选等...,持续开源更新!!
  • docker-速通
  • Django大回顾 -3 之响应对象、cbv和fbv、关于类中self是谁的问题、上传文件、模版
  • 引用计数 Rc 数据类型
  • 【Python百宝箱】分布式魔法:穿越分布式奇境的导航