Thank you Ted.
I was unaware of both those issues. The issue with these exceptions is that
they are intermittent and do not replicate easily. So, let me see if I can
replicate it with trace enabled. For #1, should retrying be attempted? Or
possibly, if we increase #retries from our end, is there a chance that it may
get past the issue? I like the idea of master having a WAL (HBASE-14190) to
find/ fix such inconsistencies.
#2 That trace showed up in a hbase client.
#3 unclean shutdown is possibly one case? I do not explicitly enable/ disable
tables. So, I assume those reasons may be related to Hbase code? And any advise
on if I can somehow avoid it in first place?
Thanks,Sumit
From: Ted Yu <[email protected]>
To: Sumit Nigam <[email protected]>
Cc: "[email protected]" <[email protected]>
Sent: Sunday, November 15, 2015 3:34 PM
Subject: Re: About exceptions
Sumit:For #1, I have seen a similar issue (HBASE-14190, though on hbase 1.x
release).If you have debug logging enabled, please pastebin relevant master log
snippet so that we can take a closer look.
For #2, I am bit confused - I didn't find CreateTableProcedure.java in 0.98
branch. To my knowledge, CreateTableProcedure is only in hbase 1 release.Did
you see the stack trace in master log ?
For #3, there could be various reasons a table was not enabled.You can trace
the table assignment in master log, check log from hbase:meta server to see if
you can find some clue.
bq. Hbase fails only after it exhausts its attempts so retrying may not be
helpful?
Your understanding should be correct.
I want to bring your attention to HBASE-12070 which helps you fix ZK
inconsistencies.
Cheers
On Sun, Nov 15, 2015 at 12:29 AM, Sumit Nigam <[email protected]> wrote:
Hi Ted,
Thanks for your reply. I am using Hbase 0.98.14. I have used hbck, but for some
(unknown) reason it has not always resolved inconsistencies.
I have been able to get around these issues so far by deleting ZK entries for
the offending table and restarting Hbase. But I am not sure what causes them in
the first place and if I can avoid those issues through code or not. Also, upon
getting these exceptions is it a good idea to retry the operation. I think
Hbase fails only after it exhausts its attempts so retrying may not be helpful?
Here are 3 logs snippets:
1. TableNamespaceManager isn't ready to serve:
Fri Nov 13 17:47:19 IST 2015,
org.apache.hadoop.hbase.client.RpcRetryingCaller@44726f67,org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(java.io.IOException):java.io.IOException:
org.apache.hadoop.hbase.master.TableNamespaceManager isn'tready to serve
atorg.apache.hadoop.hbase.master.TableNamespaceManager.getNamespaceTable(TableNamespaceManager.java:112)
atorg.apache.hadoop.hbase.master.TableNamespaceManager.list(TableNamespaceManager.java:211)
atorg.apache.hadoop.hbase.master.HMaster.listNamespaceDescriptors(HMaster.java:3473)
atorg.apache.hadoop.hbase.master.HMaster.listNamespaceDescriptors(HMaster.java:3367)
2. TableExistsException:
Caused by: org.apache.hadoop.hbase.TableExistsException:
org.apache.hadoop.hbase.TableExistsException: ldmns:exDocStoreat
org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.prepareCreate(CreateTableProcedure.java:300)at
org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:106)at
org.apache.hadoop.hbase.master.procedure.CreateTableProcedure.executeFromState(CreateTableProcedure.java:58)...
at
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:90)at
org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3403)at
org.apache.hadoop.hbase.client.HBaseAdmin.createTableAsync(HBaseAdmin.java:632)at
org.apache.hadoop.hbase.client.HBaseAdmin.createTable(HBaseAdmin.java:523)
3. TableNotEnabledException:
Caused by: org.apache.hadoop.hbase.TableNotEnabledException:
ldmns:DataDomain_stage is disabled. at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.relocateRegion(HConnectionManager.java:1139)
at
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionLocation(HConnectionManager.java:963)
at
org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:74)
at
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:114)
at org.apache.hadoop.hbase.client.HTable.get(HTable.java:833) at
org.apache.hadoop.hbase.client.HTable.get(HTable.java:810) at
org.apache.hadoop.hbase.client.HTable.get(HTable.java:842) at
com.thinkaurelius.titan.diskstorage.hbase.HBaseKeyColumnValueStore.getHelper(HBaseKeyColumnValueStore.java:155)
From: Ted Yu <[email protected]>
To: "[email protected]" <[email protected]>; Sumit Nigam
<[email protected]>
Sent: Sunday, November 15, 2015 10:50 AM
Subject: Re: About exceptions
bq. TableNotEnabledExceptionTableNotFoundExceptionIOException
Can you show log snippets where these exceptions occurred ?Which release of
hbase are you using ?
Have you run hbck to repair the inconsistencies ?
See http://hbase.apache.org/book.html#hbck.in.depth
Cheers
On Sat, Nov 14, 2015 at 8:42 PM, Sumit Nigam <[email protected]>
wrote:
Hi,
There are some exceptions which I face intermittently with Hbase and I thought
some help from experts online can really help me. These are:
TableNotEnabledExceptionTableNotFoundExceptionIOException -
TableNamespaceManager isn't ready to serve
One of the reasons I can see for this seems to be zookeeper and Hbase/ Hdfs
data being out of sync due to an unclean shutdown.
So, my questions are these:
1. Are these exceptions only related to unclean shutdowns?2. Do I need to
explicitly handle them and retry the operation again because they also seem to
indicate that it is some race condition between trying to access a table vs
Hbase enabling them?
Any help is greatly appreciated.
Thanks,Sumit