码迷,mamicode.com
首页 > 其他好文 > 详细

Hadoop序列文件

时间:2018-09-05 09:04:56      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:关于   dfs   and   合并   说明   指针   日志文件   merge   记录   

1. 关于SequenceFile

  对于日志文件来说,纯文本不适合记录二进制类型数据,通过SequenceFile为二进制键值对提供了持久的数据结构,将其作为日志文件的存储格式时,可自定义键(LongWritable)和值(Writeable的实现类)的类型。

  多个小文件在进行计算时需要开启很多进程,所以采用容器文件SequenceFile按固定大小将多个小文件包装起来,使存储和处理更高效。

2. SequenceFile说明

  SequenceFile序列文件

  是由序列化K-V对组成,而K和V即hadoop的writable格式

   

  为什么使用序列文件

  1、纯文本文件(日志文件)占用了磁盘空间较大

  2、将日志文件通过序列文件进行包装,可以获得更好的性能(处理速度和磁盘空间的压缩)

3. SequenceFile特性

  1、扁平化文件,包括二进制的k-v(将多行纵向的日志文件变成纵向的文件)

  2、可读、可写、可排序

  3、有三种压缩方式来压缩k-v对

    1)不压缩

    2)记录压缩:只压缩value

    3)块压缩:将多组k-v聚集成一个“block”然后进行压缩

  4、seqFile格式

    1)SEQ三字节的头 + 数字(如6)作为版本号

    2)key的完整类名

    3)value的完整类名

    4)boolean值,指定了seqFile是否采用压缩

    5)boolean值,指定了seqFile是否采用块压缩

    6)压缩编解码器类

    7)metadata:源数据

    8)sync:同步点

4. SequenceFile的基本操作

  待补充

5. SequenceFile的特性

  Write//写

  Read//读

    //seek  =>  将读取指针手动移动,如果指针不在文件头,则会报错

    //getPosition => 得到当前指针位置

    //sync  => 获取下一个同步点位置

  Sort

    //sort  => 对sequenceFile进行排序

    //merge      => 合并+排序

 

在块压缩中,同步点与同步点之间是以块为单位进行存储的,块是多个k-v聚集的产物

 

 

查看压缩后的seqfile:

hdfs dfs -text file:///D:/seq/random.seq

Hadoop序列文件

标签:关于   dfs   and   合并   说明   指针   日志文件   merge   记录   

原文地址:https://www.cnblogs.com/share23/p/9589312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!