Я реализую переход на резервный ресурс datanode для записи в HDFS, что HDFS все еще может записать блок, когда первый datanode блока выходит из строя.HDFS исключить datanodes в AddblockRequestProto
Алгоритм. Во-первых, узел отказа будет идентифицирован. Затем запрашивается новый блок. Порт HDFS api предоставляет excludeNodes
, который я использовал, чтобы сообщить Namenode о том, чтобы не выделять там новый блок. failedDatanodes
идентифицированы неудавшиеся datanodes, и они правильны в журналах.
req := &hdfs.AddBlockRequestProto{
Src: proto.String(bw.src),
ClientName: proto.String(bw.clientName),
ExcludeNodes: failedDatanodes,
}
Но, номенелод все еще находит блок в неудавшихся датанодах.
Кто-нибудь знает почему? Я что-то пропустил? Спасибо.