分享

关于namenode挂了,文件续传的问题

starrycheng 发表于 2013-10-25 10:42:35 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 9693
还在学习HDFS中,碰到下面的状况:
写一个大文件的时候,namenode上的daemon挂了,重启了一下namenode的进程。从namenode的log上看到原来写入的blocks都被看做corrupt的数据删掉了,导致所有数据必须重新写入。

1. 文件写入的过程中,元数据(file-block mapping, block-datanode mapping)都是在namenode的内存里吗吗?  (我知道block-datanode mapping在写完后是保存在datanode里的。)
2. 文件写入的过程中,能不能在client端或者datanode端的内存里也保存一份file-block mapping吗? 这样namenode重启后还能完成之前的写入操作。
请高手指点啊~~

已有(6)人评论

跳转到指定楼层
mexiang 发表于 2013-10-25 10:42:35
是不是高手都在周末陪女朋友了

自己顶一下
回复

使用道具 举报

poptang4 发表于 2013-10-25 10:42:35
可能你的日志看错了并不是你之前的block。
另外NameNode保存了元数据在内存中无疑,没有必要再DFSClient也保存元数据,因为这个元数据量很大。DFSClient只会缓存一部分访问过的文件的BlockLocation
回复

使用道具 举报

a2325145 发表于 2013-10-25 10:42:35
回复 3# alexanderdai

    heyhey 谢谢版主光临寒帖   
    应该没有看错,因为那些block(很多)被删除后,原来的文件都在。 而且原来只有几个小文件,不会产生如此多的block。
    那版主有没有其他方法能实现断点续传(写)吗吗?
回复

使用道具 举报

skaterxu 发表于 2013-10-25 10:42:35
回复 4# kunn
断点续传是没有的,hadoop提供了append功能,是可以在某种程度上满足你的需求,但是这个已经被社区抛弃了,新的版本中就不带这个功能了。
回复

使用道具 举报

sq331335144 发表于 2013-10-25 10:42:35
回复 4# kunn
   你可以尝试下,你认为的被删除block的file看看是否还能正常访问,如果能,其实那些block可能是调度和check过程中的正常删除。运行下fsck看看这个文件的block信息。。。
回复

使用道具 举报

qcbb001 发表于 2013-10-25 10:42:35
用2.0了,呵呵。。。。namenode不会单点失效的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条