首先感谢您阅读我的问题!
我目前正在研究 Hadoop 的复制模型,但我处于死胡同。我从《Oreilly Hadoop The Definitive Guide 3rd Edition Jan 2012》一书中学习。要回答这个问题,我首先需要阅读本书下面的文字。
在第 73 页,有以下内容:
“分布式文件系统为客户端返回一个FSDataOutputStream Hadoop 分布式文件系统开始写入数据。就像在读取的情况下,FSDataOutputStream包装了一个DFSOutput Stream,它处理与数据节点和名称节点的通信。当客户端写入数据时(步骤 3) ,
DFSOutputStream将其拆分为数据包,并将其写入内部队列,称为数据队列。数据队列由 Data Streamer 使用,它的职责是通过选择合适的数据节点列表来请求 namenode 分配新块以存储副本。"*
如您所见,DFSOutputStream有一个数据包数据队列。数据队列正在被 DataStreamer 消耗,它要求 namenode 分配新块。
我的问题:
这是如何运作的?
Namenode 是如何分配新区块的?
同样的问题,换个方式问:Namenode如何创建合适的Datanodes列表?
我在互联网上或书中找不到任何关于此的内容。这本书从高层次解释了这个过程。
我真的很感谢你的时间帮助我,我谢谢你!