hadoop 数据的分段组织和复制流水线

本文详细介绍了HDFS中的数据组织方式及复制流程。在HDFS中,客户端首先将数据存储于本地临时文件,当数据量达到一个块大小时,会与NameNode进行通信,获取数据块ID和DataNode地址,然后将数据写入指定DataNode,并通过流水线方式完成数据复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS数据组织是分阶段的

客户创建一个文件的请求并不是马上到达NameNode,实际上,HDFS客户把文件数据先存放到本地的一个临时文件上,应用程序间接地向这个文件写数据。当本地文件数据积累到超过一个块的容量时,HDFS客户联系NameNode。NameNode把文件名插入到文件系统结构中,并为之分配数据块。NameNode向客户返有datanode和目标文件块的请求。然后客户把本地的缓存文件flush到指定datanode的数据块中。当文件关闭时,本地剩下未冲刷的数据将转移到datanode中,然后客户高树NameNode文件已经关闭。如果NameNode在文件关闭之前死掉了,那文件将会丢失。

HDFS复制流水线

假设HDFS文件副本数为3,当客户写数据到HDFS文件时,数据先写到本地文件,当本地文件积累到满一个块时,客户冲NameNode找到3个datanode。客户向第一NameNode flush数据块。第一个datanode开始接收一小部分数据(4KB),把每一小部分数据写入本地仓库并且把这部分数据向第二个datanode传输,第二个datanode开始接收数据,写人本地仓库并向第三个datanode传输数据,第三个datanode接收数据后写人本地仓库。就这样一个datanode可以通过管道从前一个datanode的中接收数据并同时把数据通过管道写入下一个datanode中,数据就这样在管道中从一个datanode传输到下一个datanode。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值