zoukankan      html  css  js  c++  java
  • Hadoop的IO操作

    Hadoop的API官网:http://hadoop.apache.org/common/docs/current/api/index.html
     
    相关的包
    org.apache.hadoop.io
    org.apache.hadoop.io.compress
    org.apache.hadoop.io.file.tfile
    org.apache.hadoop.io.serializer.arvo
     
    Apache官网的sort900实验用了900台主机
    淘宝用了1500台主机来存储数据。
    Hadoop采用CRC-32来校验数据。
     
    数据完整性:
    1:本地文件的IO检查
    校验和机制的相关的类:org.apache.hadoop.fs.ChecksumFileSystem来读取相关的类
    禁用校验和机制:修改src/core/core-default.xml中的fs.file.impl的值为org.apache.hadoop.fs.RawLocalFileSystem
     
     
    2:HDFS的文件IO检查
    (1)datanode接收数据后存储数据前
    (2)客户端读取datanode上的数据时
    (3)datanode后台守护进程的定期检测
     
    3:数据恢复策略
    (1)检查已恢复标签
    (2)统计各个备份数据的恢复状态
    (3)副本同步
    hadoop fs -get [ignoreCrc]  [-crc] <src>  <localdst>
     
    数据压缩:
    1:减少存储空间
    2:加快传送速度
    org.apache.hadoop.io.compress包
    代码如下:
    conf.setBoolen("mapred.compress.map.output",true)
    conf.setBoolen("mapred.output.compress",true)
    conf.setBoolen("mapred.output.compression.type","Block")
    conf.setClass("mapred.output.compression.codec",GzipCodec.class,CompressionCodec.class)
     
    数据序列化
    (1)进程间通信
    (2)数据持久化存储
     
     
    org.apache.hadoop.io.Writable类java.lang.Comparable   
     
    1.Writable类定义了两个方法:
    序列化输出数据流:   void     write(Dataoutput out)   throw       IOException
    反序列化输入数据流:void    readFields(Datainput in)throw   IOException
     
    2.Comparable类定义了三个方法:
    comparreTo方法,hashCode方法,equals方法
     
    3.WritableComparablewrite方法,readFields方法,comparreTo方法,hashCode方法,equals方法
     
                                           
    java.util.Comparator                            
    Comparator类的compare方法
    RawComparator类
    WritableComparator
     
     

    NullWritable

    ByteWritable和BytesWritable
     

    ObjectWritable

    ArraryWritable和TwoDArraryWritable
    Text
    MapWritable和sortedMapWritable
    CompressedWritable
    GenericWritable
    VesiondWritable
     
    针对Hadoop的文件类
    SequenceFile类和MapFile类
    SequenceFile类记录的是key-value对,是序列化后的二进制文件
    有三种类型结构:
    1:未压缩的key-value对
    2:记录压缩的key-value对,只有value被压缩
    3:block 压缩的key-value对,key和value分别被压缩
     
     
     
  • 相关阅读:
    golang 使用错误总结
    golang 跨平台交叉编译
    golang redis 第三方包
    golang 浮点型 与其他数值类型计算
    golang 更友好的格式化输出
    golang 指定长度 随机数 & 随机字符串
    go语言中int和byte转换方式
    基础知识
    golang bytes 包 详解
    golang 解析 ini 文件 中文文档
  • 原文地址:https://www.cnblogs.com/hellochennan/p/5380732.html
Copyright © 2011-2022 走看看