[
https://issues.apache.org/jira/browse/HBASE-4653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13239509#comment-13239509
]
Ben West commented on HBASE-4653:
---------------------------------
Running .92.0rc3 we ran into this and the problem seems to be worse than
reported here. I couldn't alter the table because HBase told me it was enabled,
and I couldn't disable the table because HBase told me it was already disabled.
I ended up having to delete the node from zookeeper and HDFS, which was fine
because it happened in a dev environment, but would've been really bad if it
was in prod.
+1 to getting this fixed.
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira