Ошибка балансировщика CDH5 hdfs

при запуске «балансировщика hdfs», я вижу, что он показывает установленную топологию стойки, чрезмерно используемые и недостаточно используемые узлы, он говорит: «Необходимо переместить 5 ТБ, чтобы сделать кластер сбалансированным» и «Решено переместить 10 ГБ байтов из 10.150.11.24: от 50010 до 10.150.11.164:50010"

то я вижу эту ошибку,

ПРЕДУПРЕЖДЕНИЕ 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) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at 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: обработчик сервера IPC 118 на 8020, вызов org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock с 10.150.11.126:56490 Call#71 Retry#0: error: org.apache .hadoop.hdfs.server.namenode.LeaseExpiredException: нет аренды на /system/balancer.id: файл не существует. Владелец DFSClient_NONMAPREDUCE_-201468433_1 не имеет открытых файлов.

я искал и нашел обсуждение дублирующих процессов балансировщика, но я не смог найти эту проблему в нашем кластере. у кого-нибудь есть другие идеи? мы используем cdh5.0.1


person user3320595    schedule 19.08.2014    source источник


Ответы (1)


В CDH у вас должен быть узел, на котором работает служба балансировки HDFS. Это мешает балансировщику hdfs из командной строки.

Глянь сюда:

http://community.cloudera.com/t5/Storage-Random-Access-HDFS/Running-HDFS-Balancer-fail-report-namenode-LeaseExpiredException/td-p/14052

person gglanzani    schedule 09.10.2014