我是靠谱客的博主 热情火,最近开发中收集的这篇文章主要介绍Hadoop原理 之 数据完整性,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Hadoop的数据完整性,包括两个方面:一是,数据传输的完整性,也就是读写数据的完整性;二是,数据存储的完整性。
    受网络不稳定、硬件损坏等因素,在数据传输和数据存储上,难免会出现数据丢失或脏数据,数据传输的量越大,出现错误的概率就越高。hadoop提供了一种“校验和”的机制来检测数据的完整性。
   “校验和”的原理是:Hadoop在创建新文件时(也就是说,上传数据到hdfs上时),hadoop会为每一个固定长度的数据(一个个数据包)执行一次“校验和”,“校验和”的值和数据一起保存起来。数据的完整性检测,都是通过“校验和”的比较来完成的。
    1、数据传输过程的数据完整性保障:
    DataNode在存储客户端上传的数据之前,会先检测数据的“校验和”,没有问题才写入;同样,客户端从DataNode读取数据时也会检测数据的“校验和”,没有问题才写入本地文件系统。
    2、存储的block的完整性保障:
    DataNode运行着一个后台进程(DataBlockScanner),定期对存储在其上面的block进行检测“检验和”,然后将检测结果向NameNode报告。
    小结:NameNode会收到来自“客户端”、DataNode的“检验和”信息,根据这两个信息,综合来维护文件的块存储及向客户端提供块读取服务。


    Hadoop处理损坏数据的机制:
         1)、客户端在发现坏数据后,会把坏的block和block所在的datanode报告给namenode,然后,删除掉坏的block,再跳过该datanode,重新读取另外的datanode上的block;
        2)、NameNode会把这个block标记为“已损坏”,标记为“已损坏”namenode就不会为客户端指向这个block,也不会用这个block去复制到其他datanode;
        3)、NameNode会把一个好的block复制到另一个datanode上;
        4)、NameNode删除掉坏的block。

最后

以上就是热情火为你收集整理的Hadoop原理 之 数据完整性的全部内容,希望文章能够帮你解决Hadoop原理 之 数据完整性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部