GFS / Hadoop master的存储容量

时间:2016-01-22 21:47:18

标签: hadoop hdfs gfs

我正在阅读GFS论文,但无法理解一点,大师是否也为每个文件副本维护了64kb的元数据?假设主人的内存是8 GB,我存储1000个1 kb的文件,它将占用多少内存?如果复制因子是3.

2 个答案:

答案 0 :(得分:0)

GFS为每个64 MB块保留少于64个字节的元数据,而不是单个文件。每个副本都会花费相同的元数据开销。因此,1000个文件占用的内存量取决于这些文件总共有多少个块。

答案 1 :(得分:0)

没有。每个副本的主要元数据仅在块服务器的内存上。 Master 只存储 2 种类型的块元数据。

  1. 每个 64 MB 块的元数据少于 64 字节的块句柄
  2. HeartBeat 在块服务器和主服务器之间维护的每个块的位置。

这是论文中的详细信息。

<块引用>

master 存储三种主要类型的元数据:文件和chunkna mespaces,从文件到chunk 的应用,以及每个chunk 副本的位置。所有元数据都保存在 master 的内存中。

<块引用>

master 不会持久记录哪些块服务器具有给定块的副本。它只是在启动时轮询块服务器以获取该信息。 master 可以在此之后保持自己的最新状态,因为它控制所有块放置并使用常规 HeartBeat 消息监控块服务器状态。

最重要的一句话:

<块引用>

块服务器对它自己的磁盘上有或没有哪些块有最终决定权。