gpt4 book ai didi

Hadoop文件写入

转载 作者:可可西里 更新时间:2023-11-01 14:52:51 27 4
gpt4 key购买 nike

引用 Tom White 的书 Hadoop 权威指南.....我的问题(假设复制因子 3 和数据被写入节点 D1、D2、D3)如果我理解正确的话,如果写入第一个位置 D1 本身失败了……启动新管道的整个过程……如果写入第二个节点 D2 失败怎么办? ..据说“ack队列中的任何数据包都被添加到数据队列的前面,以便故障节点下游的数据节点不会错过任何数据包”并且良好数据节点上的当前 block 被赋予新的身份..这点我不是很清楚……

  1. 阻止获得新身份
  2. 谁赋予了这个新身份
  3. 为什么需要它?

最佳答案

两个回答你的问题,我想强调一点。 读取或写入 操作已由Client(HDFS Client)启动。

看看这张图。

enter image description here

在整个过程中,客户端要么直接从数据节点读取/写入数据节点,而不是通过NameNode。 NameNode 将只发送要联系以进行读取或写入操作的数据节点列表。

回到您的查询,

"any packets in the ack queue are added to the front of the data queue so that datanodes that are downstream from the failed node will not miss any packets"

在这一行之后,你可以找到下面一行

The current block on the good datanodes is given a new identity, which is communicated to the namenode, so that the partial block on the failed datanode will be deleted if the failed datanode recovers later on. The failed datanode is removed from the pipeline, and a new pipeline is constructed from the two good datanodes.

以上几点将回答您的第一个问题:1. 阻止获取新身份

  1. 谁提供了这个新的身份: 尽管不是很明确,但我们可以得出结论,HDFSClient 负责提供新的身份并通知 NameNode 新身份。

  2. 为什么需要它?

由于只有部分数据写入有问题的数据节点,我们必须完全删除这 block 数据。本书的下一组行中也有同样的解释。

The current block on the good datanodes is given a new identity, which is communicated to the namenode, so that the partial block on the failed datanode will be deleted if the failed datanode recovers later on.

关于Hadoop文件写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34464187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com