HDFS读写流程详解 —— 一图在手,天下我有~

2024-03-08 04:30

本文主要是介绍HDFS读写流程详解 —— 一图在手,天下我有~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HDFS读写流程详解

  • 一、HDFS写入文件流程
    • 1.详解图
    • 2.步骤详解
  • 二、HDFS读取文件流程
    • 1.详解图
    • 2.步骤详解

一、HDFS写入文件流程

1.详解图

HDFS写入文件流程图

2.步骤详解

1.客户端发起上传文件的请求。
2.NameNode进行校验权限,判断该客户端是否具有写入权限,如果没有直接报错,如果有则判断该文件是否已经存在,如果已存在则报错.如果没有则校验成功,通知客户端上传文件.
3.客户端对文件进行切块(切片)
4.客户端重新请求NameNode,询问第一个块上传到哪里.
5.NameNode接收到客户端请求后,根据副本机制,负载均衡,机架感知原理,以及网络拓扑图,找到存储第一个block块的DataNode列表.
以下使用node1,node2,node3为例.
6.根据收到的DataNode列表,连接就近的服务器.
7.依次和DataNode列表中其他节点连接,形成:传输管道(pipeline)
8.采用数据报包(DatagramPacket) 的方式进行传输数据,并建立:ACK确认机制(反向应答机制)
9.传输过程:
传输管道: 客户端 -> node1 -> node2 -> node3
ACK确认机制: node3 -> node2 -> node1 -> 客户端
不断传输直至第一个block块传输完毕.
10.返回第4步,获取第二个block块的上传位置,重新往下执行,直至所有的block上传完毕,写入数据任务完成.

二、HDFS读取文件流程

1.详解图

HDFS读取文件流程图

2.步骤详解

1.客户端发起读取请求.
2.NameNode进行校验,判断该客户端是否有读取权限,如果没有直接报错,如果有则判断该文件是否存在,如过不存在则报错.校验成功后会根据机架感知原理 和 网络拓扑图,返回存储该文件block块的地址.
3.客户端根据NameNode返回的DataNode列表 并行 的从这些DataNode中读取对应的块信息.
4.如果之前读取的是部分块信息,则这些块读取完成后,会重新请求NameNode从而获取剩下全部或部分block地址,然后继续读取,直至所有数据块信息读取完毕.
5.按照block块的信息,对读取的这些数据块.

这篇关于HDFS读写流程详解 —— 一图在手,天下我有~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/786000

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

10. 文件的读写

10.1 文本文件 操作文件三大类: ofstream:写操作ifstream:读操作fstream:读写操作 打开方式解释ios::in为了读文件而打开文件ios::out为了写文件而打开文件,如果当前文件存在则清空当前文件在写入ios::app追加方式写文件ios::trunc如果文件存在先删除,在创建ios::ate打开文件之后令读写位置移至文件尾端ios::binary二进制方式

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor