数据节点网站运行缓慢如何自动换节点什么检测是否损坏

        无论是第一次还是之后的每次數据块汇报,名字名字节点都会对汇报上来的数据块进行检测看看其是否为损坏的数据块。那么损坏数据块是如何被检测的呢?本文我们将研究下损坏数据块检测的checkReplicaCorrupt()方法。

        1、数据块副本状态ReplicaState为正在写入RBW、正在恢复RUR、为复制而创建的临时副本TEMPORARY三种状态则肯定不是损坏嘚数据块,因为这些数据块副本还处于不确定的状态还需要被写入或者被舍弃等;

        2、数据块副本状态ReplicaState为FINALIZED的话,说明数据已被完全写入數据块副本大小及时间戳均不会再发生变化,此时就等着其所在数据节点DataNode进行数据块汇报,将该数据块副本汇报给名字节点NameNode那么我们需要看数据块Block在名字节点内的状态:

              2.1、如果是COMPLETE状态,不应被汇报为坏块:这种情况下数据节点副本已经处于不会被修改的FINALIZED状态,而名字節点中的数据块状态为COMPLETE也是不会被修改的状态,并且其他数据节点已经汇报过该数据块对应的一个副本所以不会是损坏的数据块;

// 数據节点上的坏块数据块信息 // 名字节点BlockManager中存储的相应的数据块信息 // 损坏原因:字符串类型 // 损坏原因code:枚举类型
}

我要回帖

更多关于 网站运行缓慢如何自动换节点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信