Hadoop IO 文件压缩 序列化

   文件中使用getcodec()方法,可以将文件属性名映射到一个CompressionCodec,该去文件的Path对象当参数。

    CodecPool使用原生的代码库并且需要在用执行中执行大量解压和压缩,可以分摊这些开销。

    对于Job的任务的输出压缩,conf.setBoolean("mapred.output.compression",true);

conf.setClass("mapred.output,compression.codec",GzipCodec.classs);

    对map任务压缩,在map的输出中设置,conf.setCompressMapOutput(true);conf.setMapOutputComprssionClass(GzipCodec.class).

     序列化和反序列化,将一个对象使用DataOutput转成二进制,或者从二进制使用DataInput获得一个对象。WritbleComparable和Comparator可以进行序列化的数值比较。

    Text类和Java String类之间存在一定的差别,对Text类的索引是根据编码后字节序列中的位置实现的,并非字符中的Unicode字符,也不是Java Char编码单元。

    Writable集合类:ArrayWritble,TwoDArrayWritable,MapWritable和SortedWritable,TwoDArrayWritble。

    实现定制的Writable类型,继承WritableComparable。

    Avro,AVRO数据文件是支持切分的,Avro提供了一组让MapReduce程序在AVRO数据上简单运行的类,在org.apache.avro.mapreduce等。

    SequenceFile,对于基于MapReduce的数据处理,将每个二进制数据大对象(blob)融入自己的文件总并不能每一条日志记录是一行文本,通过sequenceFile类型将小文件包括起来,可以获得更高效率的存储和处理。

     MapFile是已经排序的SequenceFile,它加入永远搜索键的索引,它的大小可以设置为保存在内存的Map的大小。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值