【问题标题】:Compression in Hadoop Sequence FileHadoop 序列文件中的压缩
【发布时间】:2011-11-29 09:40:24
【问题描述】:

我有一些关于 hadoop 顺序文件的基本问题。

1) 默认压缩编解码器将文件压缩到什么程度?

2) 当我读取此文件并将其内容转储到文本文件时,我有 100 MB 的 hadoop 序列文件,我观察到的文本文件大小约为 1GB(可以吗?)

3)读取序列文件时"syncSeen()"的意义是什么? “寻求(多头头寸)” ?如果我在阅读时不使用这些调用有什么问题吗? 关于如何使用这些方法的任何示例?

【问题讨论】:

    标签: filesystems compression hadoop sequence hdfs


    【解决方案1】:

    SequenceFile.Reader#seek 会将阅读器定位在 SequenceFile 中的给定点。

    根据Hadoop:The Definitive Guide

    同步点是流中的一个点,可用于在读取器“丢失”时与记录边界重新同步 - 例如,在寻找流中的任意位置之后。同步点由 SequenceFile.Writer 记录,在写入序列文件时,每隔几条记录插入一个特殊条目来标记同步点。这样的条目足够小,只会产生适度的存储开销——不到 1%。同步点始终与记录边界对齐。

    SequenceFile.Reader#syncseen 将在读取 SequenceFile 时判断是否已通过同步标记。

    【讨论】:

    • 读取hadoop序列文件时是否需要使用syncseen?如果我们不使用它可能会遇到什么问题?
    • 我很好奇记录如何与块边界对齐,这对我来说是最重要的。有没有一种机制可以确保这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多