Hadoop:HDFS数据组织

本文介绍了Hadoop培训的核心内容,包括HDFS中的数据块管理、Staging机制以及流水线式的复制方式。通过这些机制,Hadoop能够高效地处理大规模数据集,支持一次写入多次读取的应用场景。

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

Hadoop培训内容:HDFS数据组织,1.数据块,2.Staging,3.流水线式的复制

1.数据块

HDFS最适合的应用场景是处理大数据集合,同时这些应用多是一次写入多次读取,并且读的速度要满足流式读,即write-once-read-many的语义。一个典型的Block大小是64MB,因此文件总是按照64MB切分成Chunk,每个Chunk存储于不同的DataNode服务器中。

2.Staging

在某个客户端上创建文件的请求其实并没有立即发给NameNode,事实上,HDFS客户端会将文件数据缓存到本地的一个临时文件中,应用写文件时被透明地重定向到这个临时文件。

当这个临时文件累积的数据超过一个Block的大小(默认为64MB),客户端才会联系NameNode。NameNode将文件名插入文件系统的层次结构中,并且分配一个数据块给它,然后返回DataNode的标识符和目标数据块给客户端。客户端将本地临时文件flush到指定的DataNode上。当文件关闭时,在临时文件中剩余的没有flush的数据也会传输到指定的DataNode,然后客户端告诉NameNode文件已经关闭。此时NameNode才将文件创建操作提交到持久存储。如果NameNode在文件关闭前挂机,该文件将丢失。

上述方法是对在HDFS上运行的目标应用认真考虑的结果。如果不采用客户端缓存,网络速度和网络堵塞因素会对吞吐量造成比较大的影响。

3.流水线式的复制

当某个客户端向HDFS文件写数据的时候,一开始是写入本地的临时文件,假设该文件的replication因子为3,那么客户端会从NameNode获取一张DataNode列表来存放副本。然后客户端开始向第一个DataNode传输数据,第一个DataNode会一小部分一小部分(4KB)地接收数据,将每个部分写入本地仓库,同时传输该部分到第二个DataNode。第二个DataNode也是这样,边收边传,一小部分一小部分地接收,将每个部分存储在本地仓库,同时传给第三个DataNode。第三个DataNode仅仅接收并存储。这就是流水线式的复制。来源:CUUG官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值