分享

修改dfs.replication之后,什么时候会起作用?什么时候会修改旧的block的备份?

starrycheng 发表于 2013-10-25 10:45:20 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 15343

已有(7)人评论

跳转到指定楼层
cryst2l 发表于 2013-10-25 10:45:20
自己动手,丰衣足食
修改dfs.replication之后,对dfs中已经存在的文件不会自动重新修改备份,但对之后加入的文件会自动做好备份。
如果要修改之前的文件备份,可以用 hadoop fs -setrep -R   方式来修改file文件的备份。
回复

使用道具 举报

jooli 发表于 2013-10-25 10:45:20
回复 2# 若冰

若冰的分享精神赞一个

回复

使用道具 举报

fylanyu 发表于 2013-10-25 10:45:20
回复 2# 若冰
    修改replication以后副本数目发生了变化,在修改以后存入的文件副本数自然和replication相等,但是对于以前的文件来说,一定要用命令强制改变副本数目么吗?HDFS的机制不是会有线程定期检查副本数,然后异步备份或删除么吗?
回复

使用道具 举报

xiaolongwu1987 发表于 2013-10-25 10:45:20
HDFS的机制不是会有线程定期检查副本数,然后异步备份或删除么吗?
这个定期是多长时间啊吗?
我之前也以为会自动检查备份的,但来回试了几次都不见效。
后来看hadoop的shell说明中看到是这么上面那样解释的,而且试用成功了。
回复

使用道具 举报

skaterxu 发表于 2013-10-25 10:45:20
回复 5# 若冰
    哦,我没有试过。但是如果文件很多,通过命令强制改变每个文件的副本数对于管理员来说就麻烦了吧。HDFS对于副本数目不够的情况是会自己备份的,那么按理说也会在replication值改变以后做同样的工作。至于时间间隔是3秒,在hadoop-default.xml里面有定义。
  dfs.replication.interval
  3
  The periodicity in seconds with which the namenode computes repliaction work for datanodes.
但是NN检查完到给适当的DN发命令去拷贝,这个时间就不清楚了。
回复

使用道具 举报

top_gloria 发表于 2013-10-25 10:45:20
每三秒算一次replication,
如果上个internal 一个datanode 死掉了,就找出所有在这个datanode上的block,然后把这些block做一个备份,并分配到其他的datanode上吗?
回复

使用道具 举报

nextuser 发表于 2017-9-11 14:55:37
  ReplicationMonitor该类是一个FSNameSystem内部类,负责清理无效块、维护副本数的一个线程.主要由两个函数来实现:
computeDatanodeWork();主要用来计算需要复制或清理的块
processPendingReplications();这个函数用来计算数据块的源节点和目的节点,
* 更新源节点的replicateBlocks,从而告知源节点要把块往哪里复制

时间由参数设置:
默认每3s执行一次,可以通过修改dfs.replication.interval来调整执行间隔


回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条