Quando o NameNode é formatado, um ID de namespace é gerado, o que essencialmente identifica aquela instância específica do sistema de arquivos distribuído. Quando os DataNodes se conectam primeiro ao NameNode, eles armazenam esse ID de namespace junto com os blocos de dados, porque os blocos precisam pertencer a um sistema de arquivos específico.
Se um DataNode se conectar posteriormente a um NameNode, e o ID do espaço para nome que o NameNode declara não corresponder ao ID do namespace armazenado no DataNode, ele se recusará a operar com o erro "ID incompatível do namespace". Isso significa que o DataNode foi conectado a um NameNode diferente, e os blocos que ele está armazenando não pertencem a esse sistema de arquivos distribuído.
Isso geralmente significa que você perdeu seus metadados NameNode de alguma forma. Se você tiver várias instalações HDFS, seu DataNode pode estar se conectando ao NameNode incorreto. Se você tiver apenas uma única instalação, o seu NameNode está sendo executado com um diretório de metadados diferente ou, de alguma forma, você perdeu os metadados e iniciou com um sistema de arquivos recém-formatado (o que só deve acontecer executando hadoop namenode -format
). Tente encontrar os metadados NameNode corretos ou restaure-os de um backup.