You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Mathias De Maré <ma...@gmail.com> on 2009/08/17 16:51:26 UTC

Disabling tables in HBase 0.20

Hi,

I tried to disable a table using the shell, and got an Exception:

hbase(main):004:0* disable 'url'
NativeException: org.apache.hadoop.hbase.RegionException: Retries exhausted,
it took too long to wait for the table url to be disabled.
    from org/apache/hadoop/hbase/client/HBaseAdmin.java:406:in
`disableTable'
    from org/apache/hadoop/hbase/client/HBaseAdmin.java:366:in
`disableTable'
    from sun/reflect/NativeMethodAccessorImpl.java:-2:in `invoke0'
    from sun/reflect/NativeMethodAccessorImpl.java:39:in `invoke'
    from sun/reflect/DelegatingMethodAccessorImpl.java:25:in `invoke'
    from java/lang/reflect/Method.java:597:in `invoke'
    from org/jruby/javasupport/JavaMethod.java:298:in
`invokeWithExceptionHandling'
    from org/jruby/javasupport/JavaMethod.java:259:in `invoke'
    from org/jruby/java/invokers/InstanceMethodInvoker.java:44:in `call'
    from org/jruby/runtime/callsite/CachingCallSite.java:273:in
`cacheAndCall'
    from org/jruby/runtime/callsite/CachingCallSite.java:112:in `call'
    from org/jruby/ast/CallOneArgNode.java:57:in `interpret'
    from org/jruby/ast/NewlineNode.java:104:in `interpret'
    from org/jruby/ast/BlockNode.java:71:in `interpret'
    from org/jruby/internal/runtime/methods/InterpretedMethod.java:163:in
`call'
    from org/jruby/internal/runtime/methods/DefaultMethod.java:144:in `call'
... 108 levels...
    from root/installation/hbase/bin/$_dot_dot_/bin/hirb#start:-1:in `call'
    from org/jruby/internal/runtime/methods/DynamicMethod.java:226:in `call'
    from org/jruby/internal/runtime/methods/CompiledMethod.java:211:in
`call'
    from org/jruby/internal/runtime/methods/CompiledMethod.java:71:in `call'
    from org/jruby/runtime/callsite/CachingCallSite.java:253:in
`cacheAndCall'
    from org/jruby/runtime/callsite/CachingCallSite.java:72:in `call'
    from root/installation/hbase/bin/$_dot_dot_/bin/hirb.rb:487:in
`__file__'
    from root/installation/hbase/bin/$_dot_dot_/bin/hirb.rb:-1:in `load'
    from org/jruby/Ruby.java:577:in `runScript'
    from org/jruby/Ruby.java:480:in `runNormally'
    from org/jruby/Ruby.java:354:in `runFromMain'
    from org/jruby/Main.java:229:in `run'
    from org/jruby/Main.java:110:in `run'
    from org/jruby/Main.java:94:in `main'
    from /root/installation/hbase/bin/../bin/hirb.rb:346:in `disable'
    from (hbase):5hbase(main):005:0>

Now, it seems I can no longer access any data in that table. (For example, I
can't do 'count 'url'' anymore.)
It looks somewhat related to
https://issues.apache.org/jira/browse/HBASE-1636 .
Is there a way to still get the data out of that table? And to disable and
enable the table, so I can change the blocksize?

Mathias

Re: Disabling tables in HBase 0.20

Posted by Mathias De Maré <ma...@gmail.com>.
Thanks. Waiting does indeed seem to be the best way to 'solve' the problem
:-)

On Mon, Aug 17, 2009 at 5:15 PM, Jean-Daniel Cryans <jd...@apache.org>wrote:

> Mathias,
>
> Disabling is still not done inline so you won't get feedback if it
> takes time to disable your table. What takes that time is that it has
> to flush all the data kept in memstore so for example if you have 20
> regions in a region server and they are near full, it could take
> minutes.
>
> So maybe wait 1-2 minutes, do a flush '.META.' and major_compact
> '.META.' just to be sure, and then reissue a disable. If it doesn't
> work, then you may have hit the bug that blocks the release of HBase
> 0.20 (HBASE-1761). Or you can also try to enable it.
>
> J-D
>
> 2009/8/17 Mathias De Maré <ma...@gmail.com>:
> > Hi,
> >
> > I tried to disable a table using the shell, and got an Exception:
> >
> > hbase(main):004:0* disable 'url'
> > NativeException: org.apache.hadoop.hbase.RegionException: Retries
> exhausted,
> > it took too long to wait for the table url to be disabled.
> >    from org/apache/hadoop/hbase/client/HBaseAdmin.java:406:in
> > `disableTable'
> >    from org/apache/hadoop/hbase/client/HBaseAdmin.java:366:in
> > `disableTable'
> >    from sun/reflect/NativeMethodAccessorImpl.java:-2:in `invoke0'
> >    from sun/reflect/NativeMethodAccessorImpl.java:39:in `invoke'
> >    from sun/reflect/DelegatingMethodAccessorImpl.java:25:in `invoke'
> >    from java/lang/reflect/Method.java:597:in `invoke'
> >    from org/jruby/javasupport/JavaMethod.java:298:in
> > `invokeWithExceptionHandling'
> >    from org/jruby/javasupport/JavaMethod.java:259:in `invoke'
> >    from org/jruby/java/invokers/InstanceMethodInvoker.java:44:in `call'
> >    from org/jruby/runtime/callsite/CachingCallSite.java:273:in
> > `cacheAndCall'
> >    from org/jruby/runtime/callsite/CachingCallSite.java:112:in `call'
> >    from org/jruby/ast/CallOneArgNode.java:57:in `interpret'
> >    from org/jruby/ast/NewlineNode.java:104:in `interpret'
> >    from org/jruby/ast/BlockNode.java:71:in `interpret'
> >    from org/jruby/internal/runtime/methods/InterpretedMethod.java:163:in
> > `call'
> >    from org/jruby/internal/runtime/methods/DefaultMethod.java:144:in
> `call'
> > ... 108 levels...
> >    from root/installation/hbase/bin/$_dot_dot_/bin/hirb#start:-1:in
> `call'
> >    from org/jruby/internal/runtime/methods/DynamicMethod.java:226:in
> `call'
> >    from org/jruby/internal/runtime/methods/CompiledMethod.java:211:in
> > `call'
> >    from org/jruby/internal/runtime/methods/CompiledMethod.java:71:in
> `call'
> >    from org/jruby/runtime/callsite/CachingCallSite.java:253:in
> > `cacheAndCall'
> >    from org/jruby/runtime/callsite/CachingCallSite.java:72:in `call'
> >    from root/installation/hbase/bin/$_dot_dot_/bin/hirb.rb:487:in
> > `__file__'
> >    from root/installation/hbase/bin/$_dot_dot_/bin/hirb.rb:-1:in `load'
> >    from org/jruby/Ruby.java:577:in `runScript'
> >    from org/jruby/Ruby.java:480:in `runNormally'
> >    from org/jruby/Ruby.java:354:in `runFromMain'
> >    from org/jruby/Main.java:229:in `run'
> >    from org/jruby/Main.java:110:in `run'
> >    from org/jruby/Main.java:94:in `main'
> >    from /root/installation/hbase/bin/../bin/hirb.rb:346:in `disable'
> >    from (hbase):5hbase(main):005:0>
> >
> > Now, it seems I can no longer access any data in that table. (For
> example, I
> > can't do 'count 'url'' anymore.)
> > It looks somewhat related to
> > https://issues.apache.org/jira/browse/HBASE-1636 .
> > Is there a way to still get the data out of that table? And to disable
> and
> > enable the table, so I can change the blocksize?
> >
> > Mathias
> >
>

Re: Disabling tables in HBase 0.20

Posted by Jean-Daniel Cryans <jd...@apache.org>.
Mathias,

Disabling is still not done inline so you won't get feedback if it
takes time to disable your table. What takes that time is that it has
to flush all the data kept in memstore so for example if you have 20
regions in a region server and they are near full, it could take
minutes.

So maybe wait 1-2 minutes, do a flush '.META.' and major_compact
'.META.' just to be sure, and then reissue a disable. If it doesn't
work, then you may have hit the bug that blocks the release of HBase
0.20 (HBASE-1761). Or you can also try to enable it.

J-D

2009/8/17 Mathias De Maré <ma...@gmail.com>:
> Hi,
>
> I tried to disable a table using the shell, and got an Exception:
>
> hbase(main):004:0* disable 'url'
> NativeException: org.apache.hadoop.hbase.RegionException: Retries exhausted,
> it took too long to wait for the table url to be disabled.
>    from org/apache/hadoop/hbase/client/HBaseAdmin.java:406:in
> `disableTable'
>    from org/apache/hadoop/hbase/client/HBaseAdmin.java:366:in
> `disableTable'
>    from sun/reflect/NativeMethodAccessorImpl.java:-2:in `invoke0'
>    from sun/reflect/NativeMethodAccessorImpl.java:39:in `invoke'
>    from sun/reflect/DelegatingMethodAccessorImpl.java:25:in `invoke'
>    from java/lang/reflect/Method.java:597:in `invoke'
>    from org/jruby/javasupport/JavaMethod.java:298:in
> `invokeWithExceptionHandling'
>    from org/jruby/javasupport/JavaMethod.java:259:in `invoke'
>    from org/jruby/java/invokers/InstanceMethodInvoker.java:44:in `call'
>    from org/jruby/runtime/callsite/CachingCallSite.java:273:in
> `cacheAndCall'
>    from org/jruby/runtime/callsite/CachingCallSite.java:112:in `call'
>    from org/jruby/ast/CallOneArgNode.java:57:in `interpret'
>    from org/jruby/ast/NewlineNode.java:104:in `interpret'
>    from org/jruby/ast/BlockNode.java:71:in `interpret'
>    from org/jruby/internal/runtime/methods/InterpretedMethod.java:163:in
> `call'
>    from org/jruby/internal/runtime/methods/DefaultMethod.java:144:in `call'
> ... 108 levels...
>    from root/installation/hbase/bin/$_dot_dot_/bin/hirb#start:-1:in `call'
>    from org/jruby/internal/runtime/methods/DynamicMethod.java:226:in `call'
>    from org/jruby/internal/runtime/methods/CompiledMethod.java:211:in
> `call'
>    from org/jruby/internal/runtime/methods/CompiledMethod.java:71:in `call'
>    from org/jruby/runtime/callsite/CachingCallSite.java:253:in
> `cacheAndCall'
>    from org/jruby/runtime/callsite/CachingCallSite.java:72:in `call'
>    from root/installation/hbase/bin/$_dot_dot_/bin/hirb.rb:487:in
> `__file__'
>    from root/installation/hbase/bin/$_dot_dot_/bin/hirb.rb:-1:in `load'
>    from org/jruby/Ruby.java:577:in `runScript'
>    from org/jruby/Ruby.java:480:in `runNormally'
>    from org/jruby/Ruby.java:354:in `runFromMain'
>    from org/jruby/Main.java:229:in `run'
>    from org/jruby/Main.java:110:in `run'
>    from org/jruby/Main.java:94:in `main'
>    from /root/installation/hbase/bin/../bin/hirb.rb:346:in `disable'
>    from (hbase):5hbase(main):005:0>
>
> Now, it seems I can no longer access any data in that table. (For example, I
> can't do 'count 'url'' anymore.)
> It looks somewhat related to
> https://issues.apache.org/jira/browse/HBASE-1636 .
> Is there a way to still get the data out of that table? And to disable and
> enable the table, so I can change the blocksize?
>
> Mathias
>