据我所知,在MRv2中,所有数据节点都会报告有关心跳的块的多个名称节点。 这个datanode在哪里准确报告,以便它将保存在所有名称节点上? 如果任何namenode出现故障,群集会丢失一些块信息吗?
答案 0 :(得分:0)
您正在谈论HDFS中的联合和高可用性概念。请查看第3章,HDFS概念" Hadoop权威指南"。 简而言之,名称空间意味着,当我们添加更多名称节点(推理)时,每个名称节点都有一个名称空间负责的命名空间。 块池,具有特定于该特定命名空间的所有块。命名空间是独立的。概念类似于xml命名空间。
答案 1 :(得分:0)
如您所知,在Hadoop 2.x系列实现中,活动 - 备用配置中有一对名称节点。
如果活动的namenode失败,则standby将接管活动的namenode职责。
活动名称节点和备用名称节点共享其编辑日志的,这样当备用名称节点接管时,它会读取到共享的末尾 编辑日志以使其状态与活动的名称节点同步。
此外,Datanodes还必须向两个名称节点发送块报告,以便两个名称节点都知道最新的块映射。
因此,如果发生故障,备用数据库会知道块映射和最新的编辑日志,因此可以非常快速地接管。