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()方法获取它

最新文章

  1. Android Studio获取SHA1和MD5方法
  2. 如何自学 Java 开发
  3. PHP日期与时间
  4. 使用css使textbox输入内容自动变大写
  5. 数论 - 筛法暴力打表 --- hdu : 12876 Quite Good Numbers
  6. Python配合BeautifulSoup读取网络图片并保存在本地
  7. Java 7 中 NIO.2 的使用——第四节 文件和目录
  8. Linux 性能监控的18个命令行工具
  9. linux的nohup disown setsid screen
  10. Introducing Regular Expressions 学习笔记
  11. Android 第一篇——环境搭建
  12. SRM 577 Div II Level Two: EllysRoomAssignmentsDiv2
  13. dwr.xml 配置
  14. 我的Python学习笔记(四):动态添加属性和方法
  15. 基于consul高可用
  16. ElasticSearch利用IK实现全文搜索
  17. Django 用户登陆访问限制 @login_required
  18. 【学习】pandas 基础介绍说明 【pandas】
  19. DirectX之顶点法线的计算
  20. javascript将list转换成树状结构

热门文章

  1. Docker 新网络 overlay 网络
  2. [转]hibernate缓存机制所有详解
  3. Android Camera HAL浅析
  4. pager-taglib插件进行普通分页
  5. iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
  6. linux 驱动入门5
  7. SSL证书指令
  8. Run Loop简介
  9. java实现gbdt
  10. IOS开发-ObjC-Category的使用