You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2015/04/11 03:24:12 UTC

[jira] [Resolved] (HBASE-4653) Master can't easily get rid of LZO compressed tables when the codec isn't available

     [ https://issues.apache.org/jira/browse/HBASE-4653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Purtell resolved HBASE-4653.
-----------------------------------
    Resolution: Incomplete

> Master can't easily get rid of LZO compressed tables when the codec isn't available
> -----------------------------------------------------------------------------------
>
>                 Key: HBASE-4653
>                 URL: https://issues.apache.org/jira/browse/HBASE-4653
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.90.4
>            Reporter: Benoit Sigoure
>            Priority: Minor
>
> I mistakenly created a table with {{COMPRESSION => LZO}}, and I don't have LZO installed.  I'm running a vanilla 0.90.4 release.  The master is unable to deploy the region of that table because the codec is missing.  I can't get rid of it.  I can't drop the table from  the shell, although it seems I could disable it.  Thankfully I found a workaround for this bug (see further below).
> {code}
> hbase(main):003:0> disable 'mytable'
> 0 row(s) in 1.1010 seconds
> hbase(main):004:0> drop 'mytable'
> [hung forever]
> {code}
> in the logs:
> {code}
> 2011-10-22 03:05:42,153 DEBUG org.apache.hadoop.hbase.regionserver.HRegion: Instantiated mytable,,1319278131519.6eb6891a8b072402b5064f4cc68c210d.
> 2011-10-22 03:05:42,154 ERROR org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler: Failed open of region=mytable,,1319278131519.6eb6891a8b072402b5064f4cc68c210d. java.io.IOException: java.lang.RuntimeException:
> java.lang.ClassNotFoundException: com.hadoop.compression.lzo.LzoCodec
>        at org.apache.hadoop.hbase.util.CompressionTest.testCompression(CompressionTest.java:89)
>        at org.apache.hadoop.hbase.regionserver.HRegion.checkCompressionCodecs(HRegion.java:2573)
>        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:2562)
>        at org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:2550)
>        at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:272)
>        at org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:99)
>        at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:156)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>        at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.hadoop.compression.lzo.LzoCodec
>        at org.apache.hadoop.hbase.io.hfile.Compression$Algorithm$1.getCodec(Compression.java:92)
>        at org.apache.hadoop.hbase.io.hfile.Compression$Algorithm.getCompressor(Compression.java:197)
>        at org.apache.hadoop.hbase.util.CompressionTest.testCompression(CompressionTest.java:84)
>        ... 9 more
> Caused by: java.lang.ClassNotFoundException: com.hadoop.compression.lzo.LzoCodec
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
>        at org.apache.hadoop.hbase.io.hfile.Compression$Algorithm$1.getCodec(Compression.java:87)
>        ... 11 more
> [...]
> 2011-10-22 03:15:30,620 DEBUG org.apache.hadoop.hbase.master.handler.DeleteTableHandler: Waiting on region to clear regions in transition; mytable,,1319278131519.6eb6891a8b072402b5064f4cc68c210d. state=OPENING, ts=1319278483001
> 2011-10-22 03:15:31,621 DEBUG org.apache.hadoop.hbase.master.handler.DeleteTableHandler: Waiting on region to clear regions in transition;
> mytable,,1319278131519.6eb6891a8b072402b5064f4cc68c210d. state=OPENING, ts=1319278483001
> [repeat message above indefinitely every 1s]
> {code}
> I tried restarting HBase, no luck.  How do I get rid of this table so I can recreate it without {{COMPRESSION => LZO}}?
> h2. Workaround
> Change the schema for each family, restart HBase, drop the table.
> {code}
> hbase(main):004:0> alter 'mytable', {NAME => 'fam1', COMPRESSION => 'NONE'}
> 0 row(s) in 0.1160 seconds
> hbase(main):005:0> alter 'mytable', {NAME => 'fam2', COMPRESSION => 'NONE'}
> 0 row(s) in 0.0480 seconds
> hbase(main):007:0> drop 'mytable'
> ^C
> [hung forever]
> {code}
> [restart HBase]  :(
> {code}
> hbase(main):001:0> disable 'mytable'
> 0 row(s) in 2.5010 seconds
> hbase(main):002:0> drop 'mytable'
> 0 row(s) in 1.1240 seconds
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)