hadoop之数据完整性与数据损坏处理

数据损坏(corruption)处理与数据完整性

由于每个DataNode操作磁盘或网络I/O操作可能会对 正在读写的数据处理不慎而出现错误,hadoop提供了他的
数据检测方式:
 
      主要在于两个方面:一是校验和的方法实现;二是DataBlockScanner数据块检测程序;

         一:校验和
          在系统启动时计算数据的校验和,在通道传输过程中,如果新生成的校验和不完全匹配原始的校

          验和,那么数据就会被认为是被损坏的。

          1:DataNode在读取Block时候计算checksum;

          2:针对数据的每个io.bytes.per.checksum字节(这个字节是怎么来的?!),都会创建一个单独的校

               验和。默认值为512字节;

          3:如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。

          4:client读取其它DN上的block;NN标记该块已经损坏,然后复制block达到预期设置的文件备份数。

          5: 每个datanode都维护着一个连续的校验和和验证日志,里面有着每个block的最后验证的时间。
         数据端成功验证block之后,便会告诉datanode,datanode随之更新日志。
 

         二:数据块检测程序(DataBlockScanner)

          每个datanode会在后台线程运行一个DataBlockScanner定期验证存储在datanode上的所有block。这是

          为了防止物理存储介质出现衰减。

          默认情况下DN在其文件创建后三周验证其checksum

 

转载于:https://www.cnblogs.com/zhanghuijunjava/archive/2013/04/23/3036490.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值