Hadoop学习日志之数据完整性

来源:互联网 发布:ssh 知乎 编辑:程序博客网 时间:2024/06/05 06:16

用户希望储存和处理数据的时候,不会有任何损失或者损坏。


Hadoop提供两种校验


1校验和(常用循环冗余校验CRC-32)

2运行后台进程来检测数据块


校验和
写入数据节点验证
读取数据节点验证
恢复数据
Localfilesystem类
ChecksumfileSystem类


写入数据节点验证


Hdfs会对写入的所有数据计算校验和,并在读取数据时验证校验和。


元数据节点负责在验证收到的数据后,储存数据及其校验和。在收到客户端数据或复制其他datanode的数据时执行。


正在写数据的客户端将数据及其校验和发送到一系列数据节点组成的管线,管线的最后一个数据节点负责验证校验和


读取数据节点验证


客户端读取数据节点数据也会验证校验和,将它们与数据节点中储存的校验和进行比较。

每个数据节点都持久化一个用于验证的校验和日志。


客户端成功验证一个数据块后,会告诉这个数据节点,数据节点由此更新日志。


Localfilesystem类


Hadoop的LocalFileSystem类是用来执行客户端的校验和验证。当写入一个名为filename的文件时文件系统客户端会在包含文件块校验和的同一目录内建立一个名为

Filename.crc的隐藏文件。