No. There's always a comparator name stored in the file trailer. Read the code in FixedFileTrailer.java. But when you work with PB, best practice is to make all fields optional, because who knows where you will be in the future, and then therefore you need to treat all fields as potentially missing.
On Thu, Jan 10, 2013 at 10:41 AM, Ted Yu <[email protected]> wrote: > Was it possible that ComparatorClassName was missing ? > Here is related code in deserializeFromPB(): > > if (builder.hasComparatorClassName()) { > comparatorClassName = builder.getComparatorClassName(); > > Cheers > > On Thu, Jan 10, 2013 at 10:28 AM, Andrew Purtell <[email protected] > >wrote: > > > On Wed, Jan 9, 2013 at 10:21 PM, Ted <[email protected]> wrote: > > > > > I guess the test failures in trunk build may have something to do with > > jdk > > > 1.7 > > > > > > I believe Ted is referring to this: > > > > 2013-01-10 03:02:28,043 ERROR > > [RS_OPEN_REGION-juno.apache.org,42323,1357786940398-0] > > handler.OpenRegionHandler(441): Failed open of > > region=-ROOT-,,0.70236052, starting to roll back the global memstore > > size. > > java.io.IOException: java.io.IOException: java.io.IOException: > > java.lang.InstantiationException: org.apache.hadoop.io.RawComparator > > at > > > org.apache.hadoop.hbase.regionserver.HRegion.initializeRegionInternals(HRegion.java:639) > > at > > org.apache.hadoop.hbase.regionserver.HRegion.initialize(HRegion.java:559) > > at > > > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4060) > > at > > > org.apache.hadoop.hbase.regionserver.HRegion.openHRegion(HRegion.java:4010) > > at > > > org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.openRegion(OpenRegionHandler.java:426) > > at > > > org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:129) > > at > > org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:202) > > at > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > > at java.lang.Thread.run(Thread.java:722) > > Caused by: java.io.IOException: java.io.IOException: > > java.lang.InstantiationException: org.apache.hadoop.io.RawComparator > > at > > > org.apache.hadoop.hbase.regionserver.HStore.loadStoreFiles(HStore.java:450) > > at > > org.apache.hadoop.hbase.regionserver.HStore.<init>(HStore.java:215) > > at > > > org.apache.hadoop.hbase.regionserver.HRegion.instantiateHStore(HRegion.java:3059) > > at > > org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:612) > > at > > org.apache.hadoop.hbase.regionserver.HRegion$1.call(HRegion.java:610) > > at > > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > > at > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > > at > > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > > ... 3 more > > Caused by: java.io.IOException: java.lang.InstantiationException: > > org.apache.hadoop.io.RawComparator > > at > > > org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.createComparator(FixedFileTrailer.java:607) > > at > > > org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.createComparator(FixedFileTrailer.java:615) > > at > > > org.apache.hadoop.hbase.io.hfile.HFileReaderV2.<init>(HFileReaderV2.java:115) > > at > > org.apache.hadoop.hbase.io.hfile.HFile.pickReaderVersion(HFile.java:564) > > at > > > org.apache.hadoop.hbase.io.hfile.HFile.createReaderWithEncoding(HFile.java:599) > > at > > > org.apache.hadoop.hbase.regionserver.StoreFile$Reader.<init>(StoreFile.java:1294) > > at > > org.apache.hadoop.hbase.regionserver.StoreFile.open(StoreFile.java:525) > > at > > > org.apache.hadoop.hbase.regionserver.StoreFile.createReader(StoreFile.java:628) > > at > > org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:426) > > at > > org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:422) > > ... 8 more > > Caused by: java.lang.InstantiationException: > > org.apache.hadoop.io.RawComparator > > at java.lang.Class.newInstance0(Class.java:357) > > at java.lang.Class.newInstance(Class.java:325) > > at > > > org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.createComparator(FixedFileTrailer.java:605) > > > > > > > > -- > > Best regards, > > > > - Andy > > > > Problems worthy of attack prove their worth by hitting back. - Piet Hein > > (via Tom White) > > > -- Best regards, - Andy Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)
