为什么不能将元数据存储在HDFS中

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

为什么不能通过3次复制将元数据存储在HDFS中。为什么它存储在本地磁盘中?

hadoop hdfs hadoop2
3个回答
1
投票

由于多次I / O操作,因此在资源分配中命名节点需要更多时间。因此最好将元数据存储在名称节点的内存中。


1
投票

原因有很多

  1. 如果它存储在HDFS上,则会有网络I / O.哪个会慢一些。
  2. 名称节点将依赖于元数据的数据节点。
  3. 再次元数据将需要元数据到Name-node,以便它可以识别元数据在hdfs上的位置。

0
投票

METADATA是有关数据的数据,例如块存储在机架中的位置,因此可以找到它,如果元数据存储在hdfs中,如果这些数据节点失败,您将丢失所有数据,因为现在您不知道如何访问存储数据的块。

即使您保持复制因子更多,但对于数据节点中的每个更改,更改都是在数据节点的副本以及namenode的编辑日志中进行的。

现在,由于我们在datanode中每次更改都有3个名称节点副本,因此首先必须更改

1.它自己的副本块

  1. 在namenode和namenode的副本中。(编辑日志被编辑3次)

这将导致写入比第一次更多的数据。但是数据存储不是唯一且主要的问题,主要问题是执行所有这些操作所需的时间。

因此,名称节点是远程磁盘上的备份,因此即使整个群集出现故障(可能性较小),您也可以随时备份数据。

为了避免名字节点失败,Hadoop自带了

主Namenode - >由命名空间图像和编辑日志组成。

Secondary Namenode - >合并命名空间和编辑日志,以便编辑日志不会变得太大。

热门问题
推荐问题
最新问题