【发布时间】:2014-10-13 04:45:06
【问题描述】:
运行“hdfs 平衡器”,我确实看到它显示已安装的机架拓扑、过度使用和未充分使用的节点,它显示“需要移动 5 TB 以使集群平衡”和“决定从 10.150 移动 10 GB 字节.11.24:50010 到 10.150.11.164:50010"
然后我看到这个错误,
WARN balancer.Balancer: Dispatcher 线程失败 java.lang.NullPointerException 在 org.apache.hadoop.hdfs.server.balancer.Balancer.isGoodBlockCandidate(Balancer.java:1233) 在 org.apache.hadoop.hdfs.server.balancer.Balancer.access$400(Balancer.java:183) 在 org.apache.hadoop.hdfs.server.balancer.Balancer$Source.isGoodBlockCandidate(Balancer.java:686) 在 org.apache.hadoop.hdfs.server.balancer.Balancer$Source.getBlockList(Balancer.java:674) 在 org.apache.hadoop.hdfs.server.balancer.Balancer$Source.dispatchBlocks(Balancer.java:776) 在 org.apache.hadoop.hdfs.server.balancer.Balancer$Source.access$1600(Balancer.java:607) 在 org.apache.hadoop.hdfs.server.balancer.Balancer$Source$BlockMoveDispatcher.run(Balancer.java:614) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:744)
那么这个,
5 次迭代没有移动任何块。退出...
警告 hdfs.DFSClient: DataStreamer 异常 org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException): /system/balancer.id 没有租约:文件不存在。持有者 DFSClient_NONMAPREDUCE_-201468433_1 没有任何打开的文件。在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:2937) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.analyzeFileState(FSNamesystem.java:2757) 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2665) 在 org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:569) 在 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440) 在 org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) 在 org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)
namenode 日志会显示这一点,
警告 org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hdfs (auth:SIMPLE) 原因:org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException:否 /system/balancer.id 上的租约:文件不存在。持有者 DFSClient_NONMAPREDUCE_-201468433_1 没有任何打开的文件。
INFO org.apache.hadoop.ipc.Server:8020 上的 IPC 服务器处理程序 118, 调用 org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock 从 10.150.11.126:56490 Call#71 Retry#0:错误:org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException:无租约 在 /system/balancer.id 上:文件不存在。持有者 DFSClient_NONMAPREDUCE_-201468433_1 没有任何打开的文件。
我搜索并发现了一些关于重复平衡器进程的讨论,但我在我们的集群中找不到这个问题。有人有其他想法吗?我们正在使用 cdh5.0.1
【问题讨论】:
标签: hadoop cloudera cloudera-cdh