【发布时间】:2016-06-07 03:16:17
【问题描述】:
以下是 Hadoop Definitive Guide 在“Anatomy of a File Write in HDFS”中的句子。不清楚,谁能提供更多细节。
如果任何数据节点在写入数据时发生故障,则会采取以下操作,这些操作对于写入数据的客户端是透明的。首先,关闭管道,将ack队列中的任何数据包添加到数据队列的最前面,这样故障节点下游的datanode就不会丢失任何数据包。
Q.) 这意味着“故障节点下游的数据节点不会丢失任何数据包”是什么意思?谁能解释的更详细些。
当客户端完成数据写入后,它会在流上调用 close()。此操作将所有剩余的数据包刷新到 datanode 管道并等待确认,然后再联系 namenode 以发出文件已完成的信号。
Q.) “动作将所有剩余的数据包刷新到数据节点管道”是什么?
Q.) 如果客户端已经完成了数据写入,那么为什么数据包仍然存在,为什么它必须刷新数据节点。
【问题讨论】: