Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
hbase-0.98.6-cdh5.3.1
-
Reviewed
Description
I set the following configuration in hbase-site.xml.
<property> <name>hbase.ipc.server.callqueue.read.ratio</name> <value>0.5</value> </property> <property> <name>hbase.ipc.server.callqueue.scan.ratio</name> <value>0</value> <property>
Then, the RegionServer failed to start and I saw the following log:
2015-08-19 14:30:19,561 ERROR org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine: Region server exiting
java.lang.RuntimeException: Failed construction of Regionserver: class org.apache.hadoop.hbase.regionserver.HRegionServer
at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2457)
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:61)
at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:85)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2472)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2455)
... 5 more
Caused by: java.lang.IllegalArgumentException: Queue size is <= 0, must be at least 1
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:92)
at org.apache.hadoop.hbase.ipc.RpcExecutor.getBalancer(RpcExecutor.java:139)
at org.apache.hadoop.hbase.ipc.RWQueueRpcExecutor.<init>(RWQueueRpcExecutor.java:121)
at org.apache.hadoop.hbase.ipc.RWQueueRpcExecutor.<init>(RWQueueRpcExecutor.java:83)
at org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.<init>(SimpleRpcScheduler.java:129)
at org.apache.hadoop.hbase.regionserver.SimpleRpcSchedulerFactory.create(SimpleRpcSchedulerFactory.java:36)
at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:610)
... 10 more
The doc of "hbase.ipc.server.callqueue.scan.ratio" says "A value of 0 or 1 indicate to use the same set of queues for gets and scans.".
I think that there is a bug in validation.