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

时间:2017-12-15 03:56:12

标签: hadoop hdfs hadoop2

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

有多种原因

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

答案 2 :(得分:0)

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

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

  

现在,因为我们在datanode中每次更改都有3个名称节点的副本,所以首先必须更改

     

1.它有自己的副本块

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

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

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

  

要从namenode中保存失败,Hadoop会附带

     

Primary Namenode - >命名空间图像和编辑日志。

     

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