In my cluster , I found a issue that root was assigned after 30 minutes when 
the cluster start up, because region server startup slowly.

Region server start up :

Step 1: report to master it has started up.

Step 2: init the service



Hmaster start up:

Step 1:Wait for the region server.

Step 2:Assign the root and meta.



Because the preceding section, if the region server initializes service slowly. 
Master may throw exception "Server is not running yet".

The root can't be assigned and need wait for 30 minutes.



Is there any good way to modify this bug? Who can give me some suggestions?



The logs:

2011-08-26 07:53:26,065 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 
No previous transition plan was found (or we are ignoring an existing plan) for 
-ROOT-,,0.70236052 so generated a random one; hri=-ROOT-,,0.70236052, src=, 
dest=linux-kqm6,20020,1314316432465; 1 (online=1, exclude=null) available 
servers

2011-08-26 07:53:26,065 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 
Assigning region -ROOT-,,0.70236052 to linux-kqm6,20020,1314316432465

2011-08-26 07:53:26,065 DEBUG org.apache.hadoop.hbase.master.ServerManager: New 
connection to linux-kqm6,20020,1314316432465

2011-08-26 07:53:33,251 WARN 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation: 
RemoteException connecting to RS

org.apache.hadoop.ipc.RemoteException: 
org.apache.hadoop.hbase.ipc.ServerNotRunningException: Server is not running yet

         at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1038)



         at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:771)

         at 
org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)

         at $Proxy6.getProtocolVersion(Unknown Source)

         at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:419)

         at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:393)

         at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:444)

         at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:349)

         at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:969)

         at 
org.apache.hadoop.hbase.master.ServerManager.getServerConnection(ServerManager.java:620)

         at 
org.apache.hadoop.hbase.master.ServerManager.sendRegionOpen(ServerManager.java:555)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1043)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:858)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:838)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assignRoot(AssignmentManager.java:1304)

         at 
org.apache.hadoop.hbase.master.HMaster.assignRootAndMeta(HMaster.java:431)

         at 
org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:388)

         at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:282)

2011-08-26 07:53:33,254 WARN org.apache.hadoop.hbase.master.AssignmentManager: 
Failed assignment of -ROOT-,,0.70236052 to 
serverName=linux-kqm6,20020,1314316432465, load=(requests=0, regions=0, 
usedHeap=0, maxHeap=0), trying to assign elsewhere instead; retry=0

org.apache.hadoop.hbase.ipc.ServerNotRunningException: 
org.apache.hadoop.hbase.ipc.ServerNotRunningException: Server is not running yet

         at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1038)



         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)

         at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

         at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

         at 
org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)

         at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:977)

         at 
org.apache.hadoop.hbase.master.ServerManager.getServerConnection(ServerManager.java:620)

         at 
org.apache.hadoop.hbase.master.ServerManager.sendRegionOpen(ServerManager.java:555)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1043)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:858)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:838)

         at 
org.apache.hadoop.hbase.master.AssignmentManager.assignRoot(AssignmentManager.java:1304)

         at 
org.apache.hadoop.hbase.master.HMaster.assignRootAndMeta(HMaster.java:431)

         at 
org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:388)

         at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:282)

2011-08-26 07:53:33,254 WARN org.apache.hadoop.hbase.master.AssignmentManager: 
Unable to find a viable location to assign region -ROOT-,,0.70236052

2011-08-26 07:55:41,226 INFO org.apache.hadoop.hbase.master.ServerManager: 
Registering server=linux-kqm5,20020,1314316540832, regionCount=0, userLoad=false

2011-08-26 07:56:13,037 INFO org.apache.hadoop.hbase.master.ServerManager: 
Registering server=linux-kqm4,20020,1314316645788, regionCount=0, userLoad=false

2011-08-26 08:23:36,528 INFO org.apache.hadoop.hbase.master.AssignmentManager: 
Regions in transition timed out:  -ROOT-,,0.70236052 state=OFFLINE, 
ts=1314316413254

2011-08-26 08:23:36,529 INFO org.apache.hadoop.hbase.master.AssignmentManager: 
Region has been OFFLINE for too long, reassigning -ROOT-,,0.70236052 to a 
random server

2011-08-26 08:23:36,529 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 
Forcing OFFLINE; was=-ROOT-,,0.70236052 state=OFFLINE, ts=1314316413254


Reply via email to