`
coderplay
  • 浏览: 581133 次
  • 性别: Icon_minigender_1
  • 来自: 广州杭州
社区版块
存档分类
最新评论

HDFS的追加/刷新/读设计

阅读更多

hdfs将在0.21版(尚未发布),把DFSOutputStream中的fsync操作(实际上是sync方法)更名为hflush, 因为之前的fsync做的工作实际上不是同步数据到磁盘,而是刷新(flush)缓存。fsync功能可能会在以后的版本中添加。

 

DFS对于未关闭文件的数据提供最大努力持久:
1. NameNode持久化文件元数据信息,但不持久化文件由哪些块组成的信息。重启NameNode可能会导致数据丢失。
2. DFS不保证各数据块的副本数和文件的复制因子一致。如果一个数据块没有一个有效副本被写入,则写失败。

 

DFS对于已关闭文件的数据提供强持久:
1. NameNode持久化文件和数据块元数据信息。重启NameNode不会导致数据丢失。
2. DFS保证各数据块的副本数和文件的复制因子一致。
3. 文件关闭不保证数据已经到达磁盘。如果数据未到达磁盘,重启DataNode会导致数据丢失。

对于未关闭文件的数据,只有已完成块的数据对readers是可见的。正在写的块中的数据,对reader来说是不可见的。

分享到:
评论
1 楼 david.org 2010-03-05  
> 1. NameNode持久化文件元数据信息,但不持久化文件由哪些块组成的信息。重启NameNode可能会导致数据丢失。

以后hadoop这点有改进吗, 如果一个文件在写入时, 客户端当了, 此时在Lease时间之内, Namenode重启后, 该文件的所有数据全部会丢掉, 肯定啊. 很无奈

相关推荐

    Hadoop-0.21 版本, NEW FEATURES-Append设计文档.

    HDFS需要为包含预追加数据的在建数据块提供强持久性,并为刷新数据提供尽力而为的持久性。因此,一些临时副本需要在数据节点重启后被保留下来。 总而言之,Hadoop 0.21版本通过Append设计文档反映出HDFS在处理大...

    【IT十八掌徐培成】Hadoop第03天-04.hdfs FileSystem API-write.zip

    5. **追加操作**:HDFS最初设计时不支持文件追加,但后来引入了`Append`功能。不过,需要注意的是,追加操作不如写入效率高,因为涉及到复杂的元数据同步。 6. **容错机制**:在写入过程中,HDFS会自动处理节点故障...

    hadoop、habse、yarn、MapReduce调优等总结的集合调优.docx

    1. **允许文件追加**:通过修改`hdfs-site.xml`中的配置,可以启用HDFS上的文件追加功能。 2. **DataNode的最大文件打开数**:优化DataNode可同时打开的文件数,通过调整`hdfs-site.xml`中的相关参数,如`dfs....

    Hadoop基础面试题(附答案)

    - **不支持并发写入和随机修改**:HDFS仅支持顺序写入,一个文件在同一时刻只能有一个写入者,并且只支持数据追加。 #### 五、HDFS的设计思想 - **主从架构**:HDFS采用一个中心化的命名空间和一个分布式的存储块...

    Hadoop完全分布式环境搭建.docx

    - 通过scp命令将公钥传递到其他服务器,并将公钥追加到`~/.ssh/authorized_keys`文件中。 - 测试连通性,如果能无密码登录其他服务器,说明免密设置成功。 11. **安装JDK** - 将JDK的tar包上传到每台服务器的`~/...

    Hadoop源代码分析(四一)

    - **refreshNodes**:刷新节点列表。 - **metaSave**:保存元数据。 - **finalizeUpgrade**:完成升级过程。 - **mkdirs**:创建目录。 - **getContentSummary**:获取目录的内容摘要。 - **setQuota**:设置配额。 ...

    SAP Lumira(桌面版)手册

    - **添加、切换、合并和追加数据集**:说明了如何在SAP Lumira中添加多个数据集并进行数据合并和追加。 - **删除和链接数据集**:提供了删除数据集以及在可视化空间中链接数据集的方法。 #### 6. 可视化空间——...

Global site tag (gtag.js) - Google Analytics