为什么不能通过3次复制将元数据存储在HDFS中。为什么它存储在本地磁盘中?
由于多次I / O操作,因此在资源分配中命名节点需要更多时间。因此最好将元数据存储在名称节点的内存中。
原因有很多
METADATA是有关数据的数据,例如块存储在机架中的位置,因此可以找到它,如果元数据存储在hdfs中,如果这些数据节点失败,您将丢失所有数据,因为现在您不知道如何访问存储数据的块。
即使您保持复制因子更多,但对于数据节点中的每个更改,更改都是在数据节点的副本以及namenode的编辑日志中进行的。
现在,由于我们在datanode中每次更改都有3个名称节点副本,因此首先必须更改
1.它自己的副本块
- 在namenode和namenode的副本中。(编辑日志被编辑3次)
这将导致写入比第一次更多的数据。但是数据存储不是唯一且主要的问题,主要问题是执行所有这些操作所需的时间。
因此,名称节点是远程磁盘上的备份,因此即使整个群集出现故障(可能性较小),您也可以随时备份数据。
为了避免名字节点失败,Hadoop自带了
主Namenode - >由命名空间图像和编辑日志组成。
Secondary Namenode - >合并命名空间和编辑日志,以便编辑日志不会变得太大。