gzip 文件如何存储在 HDFS 中

问题描述 投票:0回答:2

HDFS存储支持压缩格式来存储压缩文件。我知道 gzip 压缩不支持夹板。现在假设该文件是一个 gzip 压缩文件,其压缩大小为 1 GB。现在我的问题是:

  1. 此文件将如何存储在 HDFS 中(块大小为 64MB)

从这个链接我开始知道gzip格式使用DEFLATE来存储压缩数据,而DEFLATE将数据存储为一系列压缩块。

但我无法完全理解它并寻求广泛的解释。

更多来自gzip压缩文件的疑惑:

  1. 这个 1GB gzip 压缩文件会有多少个块。
  2. 它会在多个数据节点上运行吗?
  3. 复制因子如何适用于此文件(Hadoop 集群复制因子为 3。)
  4. 什么是
    DEFLATE
    算法?
  5. 读取gzip压缩文件时采用哪种算法?

我在这里寻找广泛而详细的解释。

algorithm hadoop compression hdfs gzip
2个回答
2
投票

如果 zip 文件格式不支持分割,该文件将如何存储在 HDFS(块大小为 64MB)中?

所有DFS块将存储在单个Datanode中。如果您的块大小为 64 MB,文件为 1 GB,则具有 16 个 DFS 块的

Datanode
(1 GB / 64 MB = 15.625)将存储 1 GB 文件。

这个 1GB gzip 压缩文件会有多少个块。

1 GB / 64 MB = 15.625 ~ 16 个 DFS 块

复制因子如何适用于此文件(Hadoop 集群复制因子为 3。)

与任何其他文件相同。如果文件是可分割的,则不进行任何更改。如果文件不可分割,则将识别具有所需块数的Datanode。在本例中,3 个数据节点具有 16 个可用的 DFS 块。

什么是DEFLATE算法?

DELATE 是解压缩 GZIP 格式的压缩文件的算法。


0
投票

gzip 不支持分割或者我们说它是不可分割的。在这种情况下,多个映射任务无法处理该文件。此外,gzip 使用 DEFLATE - 意味着压缩文件将被分割成块,并且所有这些块都存储为连续的块(不会有任何标记告诉压缩数据的块开始 - 块结束)。因为无法识别块的开始和结束,所以只有一个映射器必须处理整个文件,无论其大小如何。

© www.soinside.com 2019 - 2024. All rights reserved.