首页>>技术前沿>>网站/软件行业动态
大数据—Hadoop的HDFS数据完整性校验
作者:西安大数据平台开发 | 转载 来源:西安大数据平台开发 | 时间:2018年10月19日| 点击:0次 | 【评论】

一、HDFS数据完整性

       Hadoop提供两种校验

        1.校验和

          Hdfs会对写入的所有数据计算校验和,并在读取数据时验证校验和。元数据节点负责在验证收到的数据后,储存数据及其及其校验和。在收到客户端数据或复制其他datanode的数据时执行。正在写数据的客户端将数据及其校验和发送到一系列数据节点组成的管线,管线的最后一个数据节点负责验证校验和。客户端读取数据节点数据也会验证校验和,将它们与数据及节点中储存的校验和进行比较。每个数据节点都持久化一个用于验证的校验和日志。客户端成功验证一个数据块后,会告诉这个数据节点,数据节点由此更新日志。此外,由于hdfs储存着每个数据块的备份,它可以通过复制完好的数据备份来修复损坏的数据块来恢复数据。

        与校验和有关的类:①LocalFileSystem类。Hadoop的LocalFileSystem类是用来执行客户端的校验和验证。当写入一个名为filename的文件时文件系统客户端会在包含文件块校验和的同一目录内建立一个名为Filename.crc的隐藏文件。②ChecksumFileSystem类。LocalFileSystem类通过ChecksumFileSystem类来完成自己的任务FileSystem rawFs;FileSystem checkssummedFs=new ChecksumFileSystem(rawFS);可以通过CheckFileSystem的getRawFileSystem()方法获取源文件系统。当检测到错误时,CheckFileSystem类会调用reportCheckSumFailure()方法报告错误,然后LocalFileSystem将这个出错的文件和校验和移动到名为bad——files的文件夹内,管理员可以定期检查这个文件夹。

      2.DataBlockScanner

        数据节点后台有一个进程DataBlockScanner,定期验证存储在这个数据节点上的所有数据项,该项措施是为解决物理存储介质上的损坏。DataBlockScanner是作为数据节点上的一个后台线程工作的,跟着数据节点同时启动,由于对数据节点上的每一个数据块扫描一遍要消耗较多的系统资源,一次扫描周期的值一般以较大,这就带来另一个问题,就是在一个扫描周期内可能出现数据节点重启的情况,所以为了提高系统性能,避免数据节点在启动后对还没有过期的数据块又扫描一遍,DataBlockScanner在其内部使用了日志记录器来持久化保存每一个数据块上一次的扫描时间,这样数据节点可以在启动之后通过日志文件来恢复之前所有的数据块的有效时间。
---------------------
作者:擎宇T
来源:CSDN
原文:https://blog.csdn.net/m0_37597006/article/details/79174512
版权声明:本文为博主原创文章,转载请附上博文链接!

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 人工智能 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、弈聪软件网站内容中凡注明“来源:XXX(非西安弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,APP开发,微信小程序开发,大数据平台开发,区块链技术开发等软件开发技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“西安弈聪”的作品系本站版权所有,任何人转载请署名来源,否则西安弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。