立即注册 登录
About云-梭伦科技 返回首页

不羁的青春 https://www.aboutyun.com/?4073 [收藏] [复制] [分享] [RSS] 不要在该奋斗的年纪而去选择安逸的生活!!!

日志

HDFS数据完整性

已有 2029 次阅读2016-1-19 23:55 |个人分类:HDFS| 文件完整性, LocalFileSystem, ChecksumFileSystem


HDFS数据完整性

数据完整性常见技术

为了保证数据的完整性,一般采用数据校验技术:

1)奇偶校验技术

2)MD5,sha1等校验技术

3)CRC-32循环冗余校验技术

4)ECC内存纠错校验技术

 

数据完整性

1)HDFS以透明方式校验所有写入的数据,针对数据的io.bytes.per.checksum()字节创建一个单独的校验和,如果节点检测数据错误,就会报CheckSumException异常。

2)除了在读取数据时进行验证,数据节点也会在后台运行一个线程DataBlockScanner(数据块检测程序)验证存储在数据节点上的所有块。

3)一旦检测到corrupt block,在heartbeat阶段,DN会收到NN发来的BlockCommand,从其它数据块中拷贝一份新的replica。

 

 

LocalFileSystem

 

1.如果使用本地文件系统file:///,在写一个文件file的时候,会隐式创建一个file.crc文件,包含每个数据块的checksum。

2.使用FileSystem.setVerifyChecksum(false)来禁用校验和验证,也可以在shell命令中使用-ignoreCrc选项

 

禁用校验和的方法:通过RawLocalFileSystem,原生支持校验和,

1)通过设置fs.file.impl的值为org.apache.hadoop.fs.RawLocalFileSystem

2)建立它的实例

 

ChecksumFileSystem

 

LocalFileSystem 继承于ChecksumFileSystem,ChecksumFileSystem提供了文件校验的系统功能。

 

/****************************************************************

 * Implement the FileSystem API for the checksumed local filesystem.

 *

 *****************************************************************/

@InterfaceAudience.Public

@InterfaceStability.Stable

public class LocalFileSystem extends ChecksumFileSystem {

  static final URI NAME = URI.create("file:///");

  static private Random rand = new Random();

  

  public LocalFileSystem() {

    this(new RawLocalFileSystem());

  }

 

 

实例代码:

package org.chen.hadoop.ChecksumFileSystem;

 

import java.io.IOException;

 

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.ChecksumFileSystem;

import org.apache.hadoop.fs.LocalFileSystem;

import org.apache.hadoop.fs.Path;

 

public class TestChecksumFileSystem {

 

public static void main(String[] argsthrows IOException {

Configuration conf = new Configuration();

LocalFileSystem localFS =ChecksumFileSystem.getLocal(conf);

//文件路径

String path = "/home/ch-hduser/myfile/00.data";

System.out.println(localFS.getChecksumFile(new Path(path)));

}

 

}

 

 

 

 

 



路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条