阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

HDFS数据完整性

144次阅读
没有评论

共计 2416 个字符,预计需要花费 7 分钟才能阅读完成。

为了保证数据的完整性,一般采用数据校验技术:
1、奇偶校验技术
2、md5,sha1 等校验技术
3、CRC-32 循环冗余校验技术
4、ECC 内存纠错校验技术

HDFS 数据完整性
1、HDFS 以透明方式校验所有写入的数据,可以通过 io.bytes.per.checksum 属性设置,字节数默认是 512 字节,创建一个单独的校验和,如果节点检测数据错误,就会报 CheckSumException 异常。
2、除了在读取数据时进行验证,数据节点也会在后台运行一个线程
DataBlockscanner(数据块检测程序)周期性的验证存储在数据节点上的所有块。
3、一旦检测到 corruptblock,在 heartbeat 阶段,DN 会收到 NN 发来的 Block Command,从其他数据块中拷贝一份新的 replica(备份块)。

本地文件系统
如果使用本地文件系统 file:///,在写一个文件 file 的时候,会隐式创建一个 file.crc 文件,包含每个数据块的 checksum。
使用 FileSystem.setVerifyChecksum(false) 来禁用校验和验证,也可以在 shell 命令中使用 -ignoreCrc 选项。
禁用校验的方法还可以通过 RawLocalFilesystem 原生支持校验和,
1、通过设置 fs.file.impl 的值为 org.apache.Hadoop.fs,RawLocalFileSystem
2、建立它的实例

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

package org.apache.hadoop.fs;

/**********************************************************
Implement the FileSystem API for the raw local filesystem.
*************************************************************/
public class RawLocalFileSystem extends FileSystem {
}

public abstract class ChecksumFileSystem extends FilterFileSystem {
}

public class LocalFileSystem extends ChecksumFileSystem {
}

验证是否存在 file.crc 文件

package Compress;

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;
import org.apache.hadoop.mapreduce.Job;

public class CheckpointFileSystem {
    public static void main(String[] args) throws IOException {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, “DeCodec”); 
        // 打包运行必须执行的方法
        job.setJarByClass(CheckpointFileSystem.class);
        LocalFileSystem localFileSystem = ChecksumFileSystem.getLocal(conf);
        System.out.println(
                localFileSystem.getChecksumFile(new Path(“/liguodong/data”)));     
    }
}

[root@master liguodong]# yarn jar checksum.jar
/liguodong/.data.crc

Hadoop 如何修改 HDFS 文件存储块大小  http://www.linuxidc.com/Linux/2013-09/90100.htm

将本地文件拷到 HDFS 中 http://www.linuxidc.com/Linux/2013-05/83866.htm

从 HDFS 下载文件到本地 http://www.linuxidc.com/Linux/2012-11/74214.htm

将本地文件上传至 HDFS http://www.linuxidc.com/Linux/2012-11/74213.htm

HDFS 基本文件常用命令 http://www.linuxidc.com/Linux/2013-09/89658.htm

Hadoop 中 HDFS 和 MapReduce 节点基本简介 http://www.linuxidc.com/Linux/2013-09/89653.htm

《Hadoop 实战》中文版 + 英文文字版 + 源码【PDF】http://www.linuxidc.com/Linux/2012-10/71901.htm

Hadoop: The Definitive Guide【PDF 版】http://www.linuxidc.com/Linux/2012-01/51182.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-06/118462.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2416字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中