In client code Put data into Region server has one more times:
eg:
public void processBatch(List<Row> list,
....
for (int tries = 0; tries < numRetries && retry; ++tries) { // if put
data failed and try to do.
...
In function addRegionToMeta. Does it need to do this ?
catalogTracker.waitForMetaServerConnectionDefault().put( // does need try
again ? It fails for checkOpen because of Region server is shutdowned.
hmaster logs show
"org.apache.hadoop.hbase.regionserver.HRegionServer.checkOpen(HRegionServer.java:2335)"
-----邮件原件-----
发件人: Ted Yu [mailto:[email protected]]
发送时间: 2011年4月25日 21:25
收件人: [email protected]
主题: Re: A question about create table with regions in hbase version 0.90.3
Can you give more detail as to how many region servers were shutting down ?
Thanks
2011/4/25 Gaojinchao <[email protected]>
> I merge issue HBASE-3744 to 0.90.2 and test it.
> Find that Creating table fails when region server shutdown
>
> Does it need try to one more times for putting Meta data?
>
> public static void addRegionToMeta(CatalogTracker catalogTracker,
> HRegionInfo regionInfo)
> throws IOException {
> Put put = new Put(regionInfo.getRegionName());
> put.add(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER,
> Writables.getBytes(regionInfo));
> catalogTracker.waitForMetaServerConnectionDefault().put(
> // try again ?
> CatalogTracker.META_REGION, put);
> LOG.info("Added region " + regionInfo.getRegionNameAsString() + " to
> META");
> }
>
> Client logs:
> 11/04/25 17:22:51 INFO client.HConnectionManager$HConnectionImplementation:
> Closed zookeeper sessionid=0x12f8be0d9b7000b
> 11/04/25 17:22:51 INFO zookeeper.ZooKeeper: Session: 0x12f8be0d9b7000b
> closed
> 11/04/25 17:22:51 INFO zookeeper.ClientCnxn: EventThread shut down
> org.apache.hadoop.ipc.RemoteException:
> org.apache.hadoop.ipc.RemoteException: java.io.IOException: Server not
> running
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer.checkOpen(HRegionServer.java:2335)
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer.put(HRegionServer.java:1647)
> at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
> at
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
>
> 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.put(Unknown Source)
> at
> org.apache.hadoop.hbase.catalog.MetaEditor.addRegionToMeta(MetaEditor.java:57)
> at
> org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:804)
> at
> org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:780)
> at
> org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:747)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
> at
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
>
> at
> org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:771)
> at
> org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:257)
> at $Proxy4.createTable(Unknown Source)
> at
> org.apache.hadoop.hbase.client.HBaseAdmin.createTableAsync(HBaseAdmin.java:340)
> at
> org.apache.hadoop.hbase.client.HBaseAdmin.createTable(HBaseAdmin.java:302)
> at
> com.huawei.smartcare.performanceTuning.createTable.main(createTable.java:103)
>