当将一个大文件加载到hadoop集群中时,如果客户端在将数据传输到datanodes时失败了,会发生什么?

ars1skjm  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(212)

例如,文件是1280mb,hdfs块是128mb,当
客户端只传输了3个块然后就失败了?namenode是获得一个包含3个块的文件还是删除这3个块

t9aqgxwy

t9aqgxwy1#

不,它不会删除3个块。下面是它的工作原理,我们假设块4位于由fsdataoutstream维护的队列的下一个。在由于某个网络问题写入x字节后,datanode失败,首先关闭管道并删除写入其中的任何数据,新的good datanode被赋予一个新的标识,并被添加到队列中,该标识被传递给name node以更新块4的元数据信息,然后数据将从该块的第一个字节开始被写入新标识的datanode。《权威指南》中对文件的剖析有助于您更好地理解它是如何完成的。

相关问题