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

news/2024/2/28 5:00:32

大数据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关闭连接。


https://www.xjx100.cn/news/3118739.html

相关文章

Linux下各种字符编码进行转码

支持各种编码相互转换 具体 iconv --list 可以查看 支持的转码格式 1.代码实现 #include <iostream> #include <iconv.h> #include <cstring>int iconv_convert(const char *inCharset, const char *outCharset, char *inbuf, unsigned int inlen, char *o…

聚焦清晰度评价指标所用到的各种算法

首先&#xff0c;我想吐槽一下&#xff0c;看了好几篇聚焦评价函数的文章&#xff0c;说到底都是一篇文章转载或者重复上传&#xff0c;介绍了将近 15 种清晰度的算法&#xff0c;原文找了半天都没找到在哪&#xff0c;最多也仅能找到一些比较早的转载。 无参考图像的清晰度评…

Camunda 7.x 系列【58】自定义表单设计器

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 前言2.表单设计器3. 案例演示3.1 引入流程设计器3.2 表单数据存储3.3 测试1. 前言 Camu…

软著项目推荐 深度学习图像风格迁移 - opencv python

文章目录 0 前言1 VGG网络2 风格迁移3 内容损失4 风格损失5 主代码实现6 迁移模型实现7 效果展示8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习图像风格迁移 - opencv python 该项目较为新颖&#xff0c;适合作为竞赛课题…

【ASP.NET CORE】.NET 6.0 NET CORE MVC连接SQLSERVER数据库

项目装NuGet包&#xff0c;具体版本如下 在appsettings.json中&#xff0c;添加连接字符串 代码如下&#xff1a; "ConnectionStrings": {"MVCSqlContext": "Serverlocalhost;DatabaseAddress;User IDsa;Passwordsa;TrustServerCertificatetrue&q…

使用netconf配置华为设备

实验目的&#xff1a; 公司有一台CE12800的设备&#xff0c;管理地址位172.16.1.2&#xff0c;现在需要编写自动化脚本&#xff0c;通过SSH登陆到设备上配置netconf协议的用户名&#xff0c;密码以及netconf服务&#xff0c;并且通过netconf协议将设备的loopback0接口IP地址配…

oracle java.sql.SQLException: Invalid column type: 1111

1.遇到的问题 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{propertyuuid, modeIN, javaTypeclass java.lang.String, jdbcTypenull, numericScalenull, r…

RabbitMQ消息模型之Routing-Topic

Routing Topic Topic类型的Exchange与Direct相比&#xff0c;都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key的时候使用通配符&#xff01;这种模型Routingkey一般都是由一个或多个单词组成&#xff0c;多个单词之间以”…