云计算分布式框架 Hadoop

107课时
2.2K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
5分钟

数据块的存放

客户端创建文件请求会先将文件数据缓存到本地的一个临时文件,并没有立即发送给NameNode。应用程序的写操作被透明地重定位到这个临时文件,当临时文件累计到超过一个数据块大小时,客户端才会联系NameNode,NameNode将文件名插入HDFS文件层次结构中,并且分配一个数据块,NameNode返回DataNode的标识符和目标数据块给客户端,接着客户端将数据块从本地临时文件上传到指定的DataNode上。如果在文件关闭时,临时文件还有未上传的数据,则会将其传输到指定的DataNode上,然后客户端通知NameNode该文件已经关闭。这时NameNode才把文件创建的操作提交到日志Editklog中进行存储。如果NameNode在文件关闭前出现故障关机,则该文件就丢失了。

在上述方法中,HDFS在进行文件传输中充分考虑了应用程序中需要进行文件的流式写入,采用客户端的缓存,这样可以避免由于网络速度慢和网络堵塞对吞吐量造成过大的负担。这不是没有先例,在早期的文件系统中(如AFS),就考虑用客户端缓存的方法来提高数据传输效率。