Hadoop 序列文件中的压缩

发布于 2024-12-18 22:00:15 字数 245 浏览 1 评论 0原文

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

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

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

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

I have some basic questions about the hadoop sequential file.

1) To what extent the default compression codec compresses the file?

2) I have hadoop sequence file of 100 MB when i read this file and dump its content to text file size of text file i observed is around 1GB(Is it Ok?)

3)While reading the sequence file what is the significance of "syncSeen()" and
"seek(long position)"
? Is there any problem if i do not use these calls while reading?
any example on how to use these methods?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故人如初 2024-12-25 22:00:15

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

根据 Hadoop:权威指南

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

SequenceFile.Reader#syncseen 将告知读取 SequenceFile 时是否已通过同步标记。

SequenceFile.Reader#seek will position the reader at the given point in the SequenceFile.

According to the Hadoop:The Definitive Guide

A sync point is a point in the stream that can be used to resynchronize with a record boundary if the reader is “lost”—for example, after seeking to an arbitrary position in the stream. Sync points are recorded by SequenceFile.Writer, which inserts a special entry to mark the sync point every few records as a sequence file is being written. Such entries are small enough to incur only a modest storage overhead—less than 1%. Sync points always align with record boundaries.

SequenceFile.Reader#syncseen will tell if a sync mark has been passed while reading a SequenceFile.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文