【发布时间】:2017-01-28 05:33:18
【问题描述】:
我只是想更多地了解以下声明。当我试图理解how the HDFS writes happens to Data nodes。我得到了关于 HDFS 写入的以下解释。
为什么 hdfs 客户端发送 4kb 到数据节点而不是发送整个块 64MB 到数据节点?有人能详细解释一下吗?
为了获得更好的性能,数据节点维护数据传输管道。数据节点 1 不需要等待一个完整的块到达就可以开始传输到流中的数据节点 2。事实上,对于给定块,从客户端到数据节点 1 的数据传输发生在 4KB 的较小块中。当数据节点 1 从客户端接收到第一个 4KB 块时,它将这个块存储在其本地存储库中,并立即开始将其传输到流中的数据节点 2。同样,当数据节点 2 从数据节点 1 接收到第一个 4KB 块时,它将这个块存储在其本地存储库中,并立即开始将其传输到数据节点 3。这样,流中的所有数据节点除了最后一个数据节点都从将前一个数据转移到流程中的下一个数据节点,通过避免每个阶段的等待时间来提高写入性能。
【问题讨论】:
-
你能添加你发布的内容的来源吗?