zoukankan      html  css  js  c++  java
  • Hadoop权威指南:数据完整性

    Hadoop权威指南:数据完整性

    常用的错误检测码是CRC-32(循环冗余校验)

    HDFS的数据完整性

    • HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和
    • datanode负责在收到数据后储存该数据及其验证校验和
    • 客户端从datanode读取数据时也会验证校验和,与datanode中存储的校验和进行比较
    • 每个datanode均持久保存一个用于验证的校验和日志
    • 每个datanode也会在一个后台线程中运行一个DataBlockScanner,定期验证存储在这个datanode上的所有数据块
    • 在使用open()方法前, 将false值传递给FileSystem对象的setVerifyChecksum()方法,即可以禁用校验和验证

    LoaclFileSystem

    • Hadoop的LocalFileSystem执行客户端的校验和验证
    • 禁用校验和计算

    使用RawLoaclFileSystem替代LocalFileSystem

    • 在应用中实现全局校验和验证

      1. fs.file.impl属性设置为org.apache.hadoop.fs.RawLocalFileSystem,进而实现对文件URI的重新映射
      2. 新建一个RawLocalFileSystem实例,如果想针对一些读操作禁用校验和,这个方案非常有用,实例如下
         Configuration conf = ...
         FileSystem fs = new RawLocalFileSystem();
         fs.initialize(null, conf);
      

    ChecksumFileSystem

    LocalFileSystem通过CheckFileSystem来完成自己的任务,该类继承自FileSystem,一般用法如下

    FileSystem rawFS = ...
    FileSystem checksummedFS = new ChecksumFileSystem(rawFs);
    

    底层文件系统成为"源"(raw)文件系统,可以适用ChecksumFileSystem实例的getRawFileSystem()方法获取它

  • 相关阅读:
    求最大子数组02
    求最大子数组
    第3周学习进度
    四则运算3
    第2周学习进度
    构建之法阅读笔记02
    四则运算2及单元测试
    四则运算1
    第1周学习进度
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/bovenson/p/5730773.html
Copyright © 2011-2022 走看看