HDFS块分配策略
块分配策略流程图
注:上图提到的远程机架与本地机架是相对于找到的第一个副本的目标节点来说。
一个客户端a机器发起请求分配块请求,NN接收到请求后,执行如下块分配流程:
1) 如果a不是一个DataNode,则在集群范围内随机选择一个节点作为目标节点,否则执行下面的2,3步骤;
2) 判断a机器是否符合存储数据块的目标节点,如果符合,第一个块副本分配完毕;
3)如果a机器不符合作为目标节点,则在于与a机器同机架范围内寻找,如果找到目标节点,第一个块副本分配完毕;
4)如果在同一个机架内未找到符合要求的目标节点,则在集群内随机查找,找到则第一个块副本分配完毕,否则未找到符合条件的块,块分配失败;
5)如果已经成功分配