例如,文件是1280mb,hdfs块是128mb,当客户端只传输了3个块然后就失败了?namenode是获得一个包含3个块的文件还是删除这3个块
t9aqgxwy1#
不,它不会删除3个块。下面是它的工作原理,我们假设块4位于由fsdataoutstream维护的队列的下一个。在由于某个网络问题写入x字节后,datanode失败,首先关闭管道并删除写入其中的任何数据,新的good datanode被赋予一个新的标识,并被添加到队列中,该标识被传递给name node以更新块4的元数据信息,然后数据将从该块的第一个字节开始被写入新标识的datanode。《权威指南》中对文件的剖析有助于您更好地理解它是如何完成的。
1条答案
按热度按时间t9aqgxwy1#
不,它不会删除3个块。下面是它的工作原理,我们假设块4位于由fsdataoutstream维护的队列的下一个。在由于某个网络问题写入x字节后,datanode失败,首先关闭管道并删除写入其中的任何数据,新的good datanode被赋予一个新的标识,并被添加到队列中,该标识被传递给name node以更新块4的元数据信息,然后数据将从该块的第一个字节开始被写入新标识的datanode。《权威指南》中对文件的剖析有助于您更好地理解它是如何完成的。