Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';新添加的HBase区域服务器是否获得分配给的区域?_Hbase_Regions_Rebalancing - Fatal编程技术网

为什么可以';新添加的HBase区域服务器是否获得分配给的区域?

为什么可以';新添加的HBase区域服务器是否获得分配给的区域?,hbase,regions,rebalancing,Hbase,Regions,Rebalancing,当我向HBase群集添加新的区域服务器时,没有将任何区域分配给此新的区域服务器 新的区域服务器现在出现在web UI上,但其Num.Regions和每秒请求数都是零 这是,这是 似乎已成功添加区域服务器,但重新平衡机制不起作用 如何在所有区域服务器上重新平衡区域 这是我第一次在这里提问,希望有人能帮忙,非常感谢。转到HBase shell并运行命令平衡器。这将运行平衡器一次。它返回true(成功)或false(有问题)。如果您有问题,请检查是否存在卡在过渡中的区域 平衡器可以周期性运行,使用HB

当我向HBase群集添加新的区域服务器时,没有将任何区域分配给此新的区域服务器

新的区域服务器现在出现在web UI上,但其Num.Regions和每秒请求数都是零

这是,这是

似乎已成功添加区域服务器,但重新平衡机制不起作用

如何在所有区域服务器上重新平衡区域


这是我第一次在这里提问,希望有人能帮忙,非常感谢。

转到HBase shell并运行命令
平衡器
。这将运行平衡器一次。它返回true(成功)或false(有问题)。如果您有问题,请检查是否存在卡在过渡中的区域


平衡器可以周期性运行,使用HBase外壳中的
balance\u开关

我已经找到了这种现象的原因。一些区域在拆分过程中出现了一些错误,它们总是处于过渡状态,从未完成拆分过程,这导致平衡器无法正常运行

查看位于HMster.java的平衡器代码snippy:

public boolean balance() throws IOException {
  //...
  if (this.assignmentManager.getRegionStates().isRegionsInTransition()) {
    Map<String, RegionState> regionsInTransition =
      this.assignmentManager.getRegionStates().getRegionsInTransition();
    LOG.debug("Not running balancer because " + regionsInTransition.size() +
      " region(s) in transition: " + org.apache.commons.lang.StringUtils.
        abbreviate(regionsInTransition.toString(), 256));
    return false;
  }
  //...
}
我想移动的区域是c3ebb018b9c3fc101a7b9def9100fb5f,但错误表明找不到的是区域32EF153360B7A9499E55A7937418EE7中的文件,后来我发现区域c3ebb018b9c3fc101a7b9def9100fb5f是区域32EF153360B7A9499E55A7937418EE7的子区域

然后我检查了hdfs,发现缺少父区域,并且子区域中指向父存储文件的引用文件存在。也就是说,子区域中的引用文件指向一些不存在的文件

因此,region server在Daugh区域中找到了引用文件,但找不到父区域,然后抛出此异常


最后,我删除了这些分割区域的参考文件,平衡器开始正常工作。但我不知道是否有一些数据丢失。

这对你的回答来说太多了。我已经找到了原因,因为平衡器无法正常运行,你给了我灵感。谢谢!
2018-05-17 13:11:12,695 ERROR         [B.defaultRpcServer.handler=99,queue=9,port=26020] regionserver.RSRpcServices: Failed warming up region tsdb,\x00\x12\x19Z\xD2P,1525840795373.c3ebb018b9c3fc101a7b9def9100fb5f.
java.io.IOException: java.io.IOException: java.io.FileNotFoundException: File does not exist: /hbase-holmes/data/default/tsdb/32ef153360b7a9499e555a7937418ee7/t/a6cdb25689234e539ed82230ed7b790f
    at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:71)
    at org.apache.hadoop.hdfs.server.namenode.INodeFile.valueOf(INodeFile.java:61)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsInt(FSNamesystem.java:1828)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1799)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1712)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:588)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:365)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)

    at org.apache.hadoop.hbase.regionserver.HRegion.initializeStores(HRegion.java:943)
    at org.apache.hadoop.hbase.regionserver.HRegion.initializeWarmup(HRegion.java:967)
    at org.apache.hadoop.hbase.regionserver.HRegion.warmupHRegion(HRegion.java:6554)
    at org.apache.hadoop.hbase.regionserver.RSRpcServices.warmupRegion(RSRpcServices.java:1709)
    at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:22241)
    at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2188)
    at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
    at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
    at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
    at java.lang.Thread.run(Thread.java:745)
...