网站首页 > 基础教程 正文
HDFS写数据流程:
(1)客户端通过分布式文件系统(DistributedFileSystem)模块向NameNode请求上传文件,这时NameNode会检查是否有权限上传以及检查目标文件是否已存在;
(2)NameNode返回检查的结果,响应是否可以上传;
(3)NameNode返回可以上传的响应,那么客户端将请求第一个Block,并询问NameNode服务器数据具体上传到哪几台DataNode上;
(4)NameNode此时根据副本数量和副本放置策略进行节点分配,返回3个DataNode节点,分别为dn1、dn2、dn3;
(5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求之后,会继续调用dn2,然后dn2调用dn3,将上传的通道建立起来;
(6)通道建立完成之后,dn1、dn2、dn3逐级应答客户端,表示已经准备好了;
(7)客户端开始往dn1上传第一个Block,以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3,dn1每传一个Packet会放入一个应答队列等待应答;
(8)当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block,重复执行上述3-7步骤;
(每日1小题,进步1点点)
猜你喜欢
- 2024-11-17 第三篇 hadoop的核心概念&存取策略
- 2024-11-17 Java 17 的 I/O 基础 OutputStream 篇
- 2024-11-17 数据湖(十七):Flink与Iceberg整合DataStream API操作
- 2024-11-17 javaUDP协议DatagramPacket、DatagramSocket
- 2024-11-17 JavaSE---02(javase下载安装教程)
- 2024-11-17 每秒8.8亿次请求!Lindorm让数据存得起,看得见
- 2024-11-17 Java IO: 文件读写与数据流操作(java文件读取和写入实例)
- 2024-11-17 面试官:请说下适配器模式、代理模式和装饰者模式的不同
- 2024-11-17 HDFS和NFS的架构及原理(hdfs fs -ls)
- 2024-11-17 这篇文章过后,别说你不懂NIO(这篇文章告诉你答案)
- 06-18单例模式谁都会,破坏单例模式听说过吗?
- 06-18Objective-c单例模式的正确写法「藏」
- 06-18单例模式介绍(单例模式都有哪些)
- 06-18前端设计-单例模式在实战中的应用技巧
- 06-18PHP之单例模式(php单例模式连接数据库)
- 06-18设计模式:单例模式及C及C++实现示例
- 06-18python的单例模式(单例 python)
- 06-18你认为最简单的单例模式,东西还挺多
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)