【发布时间】:2017-06-17 16:12:36
【问题描述】:
为什么HDFS客户端不能直接发送到DataNode?p>
HDFS 客户端缓存有什么优势?
- 创建文件的应用程序请求不会立即到达 NameNode。
- 其实一开始HDFS客户端会将文件数据缓存到一个临时的本地文件中。
- 应用程序写入透明地重定向到这个临时本地文件。
- 当本地文件积累了至少一个HDFS块大小的数据时,客户端联系NameNode创建文件。
- NameNode 然后按照创建部分中的描述继续。客户端将数据块从本地临时文件刷新到指定的DataNodes。
- 当一个文件被关闭时,临时本地文件中剩余的未刷新数据被传输到DataNode。
- 然后客户端告诉 NameNode 文件已关闭。
- 此时,NameNode 将文件创建操作提交到持久存储中。如果 NameNode 在文件关闭之前死亡,则文件丢失。
【问题讨论】: