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