[ https://issues.apache.org/jira/browse/HBASE-9644?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13777086#comment-13777086 ]
Liang Xie commented on HBASE-9644: ---------------------------------- If there're sth wrong with checksum, that definitely you should see log stuff like at least one of following: HBase checksum verification failed HDFS checksum verification suceeded > Regionserver throws java.lang.NoClassDefFoundError: Ljava/lang/InternalError > exception while decompressing hfileblock > --------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-9644 > URL: https://issues.apache.org/jira/browse/HBASE-9644 > Project: HBase > Issue Type: Bug > Components: HFile, regionserver > Affects Versions: 0.94.10 > Environment: Linux 2.6.32-el5.x86_64 > Reporter: Victor Xu > > Regionserver threw a "java.lang.NoClassDefFoundError: > Ljava/lang/InternalError" Exception when it decompressed a hfileblock. > The exception detail is: > {noformat} > 2013-09-15 05:44:03,612 ERROR > org.apache.hadoop.hbase.regionserver.HRegionServer: > java.lang.NoClassDefFoundError: Ljava/lang/InternalError > at > org.apache.hadoop.io.compress.snappy.SnappyDecompressor.decompressBytesDirect(Native > Method) > at > org.apache.hadoop.io.compress.snappy.SnappyDecompressor.decompress(SnappyDecompressor.java:238) > at > org.apache.hadoop.io.compress.BlockDecompressorStream.decompress(BlockDecompressorStream.java:87) > at > org.apache.hadoop.io.compress.DecompressorStream.read(DecompressorStream.java:83) > at java.io.BufferedInputStream.read1(BufferedInputStream.java:256) > at java.io.BufferedInputStream.read(BufferedInputStream.java:317) > at org.apache.hadoop.io.IOUtils.readFully(IOUtils.java:192) > at > org.apache.hadoop.hbase.io.hfile.HFileBlock$AbstractFSReader.decompress(HFileBlock.java:1461) > at > org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderV2.readBlockDataInternal(HFileBlock.java:1890) > at > org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderV2.readBlockData(HFileBlock.java:1703) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:342) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:254) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:484) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:505) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:220) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:140) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:131) > at > org.apache.hadoop.hbase.regionserver.Store.getScanner(Store.java:2208) > at > org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:3807) > at > org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:1825) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1817) > at > org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1794) > at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:4828) > at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:4802) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.get(HRegionServer.java:2196) > at sun.reflect.GeneratedMethodAccessor48.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.WritableRpcEngine$Server.call(WritableRpcEngine.java:320) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1426) > Caused by: java.lang.ClassNotFoundException: Ljava.lang.InternalError > 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) > ... 30 more > {noformat} > There are two problems here: > 1. Why use the class name 'Ljava/lang/InternalError' instead of > 'java/lang/InternalError' in Snappy library? > This involves the code of snappy lib, maybe there is a bug in it. > 2. When I tried to read the hfileblock using HDFS tools, it told me that the > local hfileblock didn't pass the file checksum and read another replica from > remote datanode. Then here is the question, why hbase checksum cannot find > this problem while hdfs can? > This is my hbase-site.xml configure for checksum: > {noformat} > <property> > <name>dfs.client.read.shortcircuit</name> > <value>true</value> > <description></description> > </property> > <property> > <name>dfs.client.read.shortcircuit.skip.checksum</name> > <value>true</value> > <description></description> > </property> > <property> > <name>hbase.regionserver.checksum.verify</name> > <value>true</value> > <description></description> > </property> > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira