zoukankan      html  css  js  c++  java
  • Hadoop的I/O操作

    一、数据完整性
    HDFS的数据完整性
        1、hadoop自带一套原子操作用于IO操作;
        2、HDFS数据完整性:会对写入的所有数据计算校验和,并在读取数据时验证校验和,针对每个io.bytes.per.checksum指定字节的数据计算校验和;
        3、由于HDFS存储着每个数据块的复本,因为它可以通过数据复本来修复损坏的数据块;

    LocalFileSystem:执行客户端的校验和验证
        1、新建.filename.crc的隐藏文件,块大小于io.bytes.per.checksum控制,默认512字节;

    CheckSumFileSystem类:继承自FileSystem,向其他文件系统加入校验和
        1、FileSystem rawFS = ....;FileSystem checksummedFS = new CheckSumFileSystem(rawFS);

    二、压缩
        1、最快的压缩方法:gzip -1 filename (-1为最快压缩,但空间减少最少,-9为节省最大空间压缩)
        2、CodeC压缩/解压缩算法类:org.apache.hadoop.io.compress.DefaultCodeC/GzipCodeC/BZip2CodeC/LzopCodeC/Lz4CodeC/SnappCodeC
        3、CompressionCodeC压缩/解压缩:写入输入流压缩方法-->createOutPutStream在底层数据流中写入CompressionOUtPutStream对象;
            相反则是createInputStream获取CompressionInputStream对象;
        4、CompressionCodeFactory推断CompressionCodeC:例如文件名以.gz结尾使用GzipCodeC
        5、InputStream in = codec.createInputStream(fs.open(new path(args[0])));
        6、OutputStream out = fs.create(new Path(outputuri))
        7、CodeCPool:支持反复压缩和解压缩,以分摊创建这些对象的开销;
        8、Map端压缩: mapred.map.output.compression.codeC 设为org.apache.hadopio.cpmpress.DefaultCodeC

    三、序列化
        定义:是指将化对象转化节流以便在网络上传输或写到磁盘进行永久存储的过程;
        常用之处:1、进行间通信;2、永久存储
        RPC:(远程过程调用)系统间进行间的通信方式;RPC协议将消息转化为二进行制后发送到远程节点;
        1、Writable:Hadoop自己的序列化格式
        2、WritableComparable:对MapReduce来说,类型比较非常重要,因为中间有个基于键的排序阶段;
        3、Writable对java基本类型提供封装;

  • 相关阅读:
    Visual Studio中Debug与Release以及x86、x64、Any CPU的区别 &&&& VS中Debug与Release、_WIN32与_WIN64的区别
    64位Windows下安装Redis教程
    让Redis在你的系统中发挥更大作用的几点建议
    Redis主从复制问题和扩容问题的解决思路
    redis常用命令小结
    Redis中5种数据结构的使用场景介绍
    redis中使用redis-dump导出、导入、还原数据实例
    Redis批量删除KEY的方法
    超强、超详细Redis数据库入门教程
    Redis总结笔记(一):安装和常用命令
  • 原文地址:https://www.cnblogs.com/pingzhanga/p/4663970.html
Copyright © 2011-2022 走看看