Hadoop块压缩
Posted
技术标签:
【中文标题】Hadoop块压缩【英文标题】:Hadoop block compression 【发布时间】:2017-06-29 09:11:02 【问题描述】:我不太了解 hadoop 中块压缩的概念。假设我有一个 1Gb 的数据,我想以块压缩序列文件的形式写入,默认的 HDFS 块大小为 128Mb。
这是否意味着,我的数据在 HDFS 上被拆分为 8 个压缩块,并且这些块中的每一个都可以在以后独立解压缩?
【问题讨论】:
这个链接可能对这个***.com/questions/34953756/…有帮助 我不认为序列文件中的块压缩和 HDFS 块相关。块压缩只是 SeqFiles 提供的两种压缩类型之一,另一种是记录压缩。记录补偿。一次是一条记录,并且块压缩。一次是多条记录。它与您的块大小没有任何关系。我可能错了。 这正是我的问题,感谢您指出。有人可以给我一个参考,说明序列文件中的块压缩是否与 hdfs 块相关? 我找到了答案here。 [...]“此外,这里对块的引用与 HDFS 或文件系统块无关。块压缩中的块是指在单个 HDFS 块中一起压缩的一组记录。” 【参考方案1】:这一切都取决于是否设置了 splittable 。 (例如,Gzip 不支持拆分。)
可拆分意味着 hdfs 块可以并行解压缩,并且 对于序列文件解压缩,块不需要位于同一位置。
此外,如果您使用块压缩,则压缩记录可能会跨越多个块,因此,再次需要在同一位置进行解压缩。
因此您的块可能会或可能不会独立解压缩。
【讨论】:
以上是关于Hadoop块压缩的主要内容,如果未能解决你的问题,请参考以下文章