分享

请问hdfs是如何实现灾备的?求指教

heelo 发表于 2017-9-11 14:05:44 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 5957

我们知道hdfs中会根据配置文件对数据做多份备份处理,假设在三个datanode上各有一份备份吧,称为dn1,dn2,dn3,现在就有个问题了,hdfs是在什么时候去检测数据的完整性和正确性并且及时作出灾备处理的呢?是不定期对该份数据的三份备份都做正确性检验以及可得做检测,还是说在外部对该数据发出请求时,namenode返回dn1,dn2,dn3的地址给客户端,然后客户端如果发现某个节点数据有问题上报给namenode处理还是namenode返回相应的数据块地址的时候就会对数据做检测了呢?不是特别明白,希望有人可以解答一下,谢谢

已有(2)人评论

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

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


回复

使用道具 举报

heelo 发表于 2017-9-11 14:56:46
nextuser 发表于 2017-9-11 14:53
ReplicationMonitor该类是一个FSNameSystem内部类,负责清理无效块、维护副本数的一个线程.主要由两个函 ...


感谢感谢!!!!
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条