zoukankan      html  css  js  c++  java
  • [SequenceFile_1] Hadoop 序列文件


     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 的基本操作

      内容如下:

      测试序列文件的读写操作 && 测试序列文件的排序操作 && 测试序列文件的合并操作 && 测试序列文件的压缩方式 && 测试将日志文件转换成序列文件

      详情链接:

      SequenceFile 的基本操作

     


     5. SequenceFile 的特性

      【Write】

        写

      【Read】

        读

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

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

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

      【Sort】

          //sort  => 对sequenceFile进行排序

          //merge      => 合并+排序

     

      【SequenceFile 压缩说明】

      SequenceFile 压缩分为不压缩、记录压缩(默认)、块压缩

      

      记录压缩只压缩值,详情如下:

       

      块压缩:将多组 K-V 聚集成一个 "block" 然后进行压缩

      块压缩是指一次性压缩多条记录,利用记录间的相似性进行压缩,压缩效率高,压缩的块大小默认 1MB

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

       

      Windows 下查看压缩后的 seqfile :

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

    且将新火试新茶,诗酒趁年华。
  • 相关阅读:
    趣味算法:国王和100个囚犯(据说是腾讯的面试题)
    限制文本框的输入(兼容FF,IE)
    切换家里和公司网络的脚本
    onchange,onpropertychange,oninput的使用
    正则匹配html标记
    javascript清空数组的三种方法
    正则查找重复
    (正则)提取页面里的img标签
    javascript类型检测(转载)
    查看sqlserver信息
  • 原文地址:https://www.cnblogs.com/share23/p/9589312.html
Copyright © 2011-2022 走看看