hadoop - 如果我们使用小文件,HDFS会有内存损失吗?

标签 hadoop hdfs

下面我引用了《Hadoop - 权威指南》: 但请注意,小文件占用的磁盘空间不会超过存储文件原始内容所需的磁盘空间。例如,以 128 MB block 大小存储的 1 MB 文件使用 1 MB 磁盘空间,而不是 128 MB,

这是我的问题

1) 以 128 MB block 大小存储的 1 MB 文件使用 1 MB 磁盘空间,而不是 128 MB。) hdfs 如何使用该 block 中剩余的 127M?

2)是否有机会在同一 block 中存储另一个文件?

最佳答案

  1. 1 MB 文件存储在 128MB block 中,具有 3 个复制。那么文件将被存储在 3 个 block 中,并且仅使用 3*1=3 MB,而不是 3*128=384 MB。但它显示每个 block 大小为 128 MB。它只是在namenode中存储元数据的抽象,而不是实际使用的内存大小。

  2. 无法在单个 block 中存储多个文件。每个文件将存储在单独的 block 中。

引用:

  1. https://stackoverflow.com/a/21274388/3496666
  2. https://stackoverflow.com/a/15065274/3496666
  3. https://stackoverflow.com/a/14109147/3496666

关于hadoop - 如果我们使用小文件,HDFS会有内存损失吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30165303/

相关文章:

hadoop - 使用flume作为kafka消费者

hadoop - 将非 HA Hadoop 集群转换为 HA 集群

hadoop - 从命令行获取 yarn 配置

hadoop - 找不到带有 key dfs.encryption.key.provider.uri 的 uri 以在 CDH 5.4 的 HDFS 加密中创建 key 提供程序

Hadoop DFS 权限错误

hadoop - 如何排除此 Hadoop 文件系统安装错误?

hadoop - Java 类文件的 Hadoop Streaming -file 选项存在问题

hadoop - MapReduce 在哪些类型的用例中优于 Spark?

java - 使用JAVA在HIVE中创建表

hadoop - 在Hadoop环境中,谁在HDFS中创建数据拆分?