【发布时间】:2014-05-06 06:08:39
【问题描述】:
使用默认 Hadoop 设置,假设写入一个块需要 4 分钟,将 64Mb 文件写入 HDFS 需要多长时间。
根据我的默认块大小为 64Mb,客户端必须写入一个块,这需要 4 * 3[复制因子]=12 分钟。
原因
HDFS 使用流水线来实现其复制写入。当客户端从 NameNode 接收到 DataNode 列表时,客户端将块数据流式传输到第一个
DataNode(4 分钟),然后将数据镜像到下一个 DataNode(4 分钟),依此类推,直到数据到达所有 DataNode(再次 4 分钟)。来自 DataNode 的确认也以相反的顺序进行流水线传输。
4+4+4=12 分钟
有人可以确认我的理解是否正确吗?
【问题讨论】: