java.lang.NullPointerException ao fazer uma leitura no HDFS

4

Eu tive um cluster HBase de 10 nós funcionando nos últimos 4 meses. O cluster foi configurado em VMs em um ambiente corporativo que eu não controlei, mas tudo funcionou muito bem ... até hoje.

Hoje, todas as partes do sistema estavam inativas. Eu reiniciei o sistema e tudo voltou para um pouco, mas depois iria para baixo novamente (particularmente HBase ... mas acho que foi por causa deste seguinte problema).

Há um erro nos registros do HDFS que diz:

HdfsCanaryCdh4{hdfs://hbase-1.internal:8020} for hdfs://hbase-1.internal:8020: Failed to read /tmp/.cloudera_health_monitoring_canary_files/.canary_file_2014_04_15-17_39_25. Error: org.apache.hadoop.ipc.RemoteException(java.lang.NullPointerException): java.lang.NullPointerException
    at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.sortLocatedBlocks(DatanodeManager.java:334)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1343)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:413)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:172)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44938)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1002)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1752)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1748)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1746)

Quando eu pulo para o nó de nome e corro:

sudo -u hdfs hdfs dfs -cat /tmp/.cloudera_health_monitoring_canary_files/.canary_file_2014_04_15-17_39_25

Eu recebo de volta uma única linha que diz: cat: java.lang.NullPointerException .

Também verifiquei que os discos não estavam cheios (não estão) e que tenho conectividade (tudo parece normal - ninguém tocou neste sistema, pois eu era o único com acesso).

Estou completamente perplexo com o que está acontecendo aqui. Eu posso fornecer mais detalhes, se necessário, mas não tenho certeza para onde ir a partir daqui.

Atualizar

Por solicitação de Mark nos comentários, a saída de:

sudo -u hdfs hdfs dfs -lsr /tmp/

é

drwxrwxrwx   - hdfs supergroup          0 2014-04-16 09:48 /tmp/.cloudera_health_monitoring_canary_files
-rw-rw-rw-   3 hdfs supergroup         56 2014-04-15 16:59 /tmp/.cloudera_health_monitoring_canary_files/.canary_file_2014_04_15-16_59_24
[continues like this for all the files in the directory]
    
por JasCav 16.04.2014 / 00:04

0 respostas

Tags