浏览 2741 次
锁定老帖子 主题:HDFS的追加/刷新/读设计
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-26
最后修改:2010-02-06
hdfs将在0.21版(尚未发布),把DFSOutputStream中的fsync操作(实际上是sync方法)更名为hflush, 因为之前的fsync做的工作实际上不是同步数据到磁盘,而是刷新(flush)缓存。fsync功能可能会在以后的版本中添加。
DFS对于未关闭文件的数据提供最大努力持久:
DFS对于已关闭文件的数据提供强持久:
1. NameNode持久化文件和数据块元数据信息。重启NameNode不会导致数据丢失。 2. DFS保证各数据块的副本数和文件的复制因子一致。
3. 文件关闭不保证数据已经到达磁盘。如果数据未到达磁盘,重启DataNode会导致数据丢失。
读
对于未关闭文件的数据,只有已完成块的数据对readers是可见的。正在写的块中的数据,对reader来说是不可见的。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-03-05
> 1. NameNode持久化文件元数据信息,但不持久化文件由哪些块组成的信息。重启NameNode可能会导致数据丢失。
以后hadoop这点有改进吗, 如果一个文件在写入时, 客户端当了, 此时在Lease时间之内, Namenode重启后, 该文件的所有数据全部会丢掉, 肯定啊. 很无奈 |
|
返回顶楼 | |