过去4个月,我已经有了一个10节点的HBase集群。 这个集群是在一个我不能控制的企业环境中的虚拟机上安装的,但是一切都一直很好,直到今天。
今天,这个系统的每个部分都停了下来。 我重新启动了系统,所有的东西都恢复了一些,但是之后会再次下降(特别是HBase …但是我认为这是因为这个问题)。
在HDFS日志中有一个错误:
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)
当我跳到名称节点并运行:
sudo -u hdfs hdfs dfs -cat /tmp/.cloudera_health_monitoring_canary_files/.canary_file_2014_04_15-17_39_25
我找回一行说: cat: java.lang.NullPointerException 。
我也加倍检查了磁盘没有满(他们没有),我有连接(一切似乎正常 – 没有人触及这个系统,因为我是唯一一个访问)。
我完全不知道这里发生了什么。 如果需要,我可以提供更多细节,但我甚至不知道从哪里去。
更新
Per Mark在评论中的要求,输出:
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]