[
https://issues.apache.org/jira/browse/HBASE-16189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15365720#comment-15365720
]
Enis Soztutar commented on HBASE-16189:
---------------------------------------
I have seen this when I deployed 1.x code on top of existing data written by
2.0. However, in rolling upgrade, regions can move around. Adding some code in
1.x to recognize the new classes is definitely one option. Otherwise, we can
also fall back to a "default" comparator based on table type.
> [Rolling Upgrade] 2.0 hfiles cannot be opened by 1.x servers
> ------------------------------------------------------------
>
> Key: HBASE-16189
> URL: https://issues.apache.org/jira/browse/HBASE-16189
> Project: HBase
> Issue Type: Sub-task
> Components: migration
> Reporter: Enis Soztutar
> Priority: Critical
> Fix For: 2.0.0
>
>
> HBASE-10800 added MetaCellComparator, which gets written to the HFile. 1.x
> code does not have the new class, hence fails to open the regions. I did not
> check whether this is only for meta or for regular tables as well.
> {code}
> Caused by: org.apache.hadoop.hbase.io.hfile.CorruptHFileException: Problem
> reading HFile Trailer from file
> hdfs://cn017.l42scl.hortonworks.com:8020/apps/hbase/data/data/hbase/meta/1588230740/info/aa96e4ef463b4a82956330b236440437
> at
> org.apache.hadoop.hbase.io.hfile.HFile.pickReaderVersion(HFile.java:483)
> at org.apache.hadoop.hbase.io.hfile.HFile.createReader(HFile.java:511)
> at
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.<init>(StoreFile.java:1123)
> at
> org.apache.hadoop.hbase.regionserver.StoreFileInfo.open(StoreFileInfo.java:267)
> at
> org.apache.hadoop.hbase.regionserver.StoreFile.open(StoreFile.java:409)
> at
> org.apache.hadoop.hbase.regionserver.StoreFile.createReader(StoreFile.java:512)
> at
> org.apache.hadoop.hbase.regionserver.HStore.createStoreFileAndReader(HStore.java:687)
> at
> org.apache.hadoop.hbase.regionserver.HStore.access$000(HStore.java:130)
> at org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:554)
> at org.apache.hadoop.hbase.regionserver.HStore$1.call(HStore.java:551)
> ... 6 more
> Caused by: java.io.IOException: java.lang.ClassNotFoundException:
> org.apache.hadoop.hbase.CellComparator$MetaCellComparator
> at
> org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.getComparatorClass(FixedFileTrailer.java:581)
> at
> org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.deserializeFromPB(FixedFileTrailer.java:300)
> at
> org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.deserialize(FixedFileTrailer.java:242)
> at
> org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.readFromStream(FixedFileTrailer.java:407)
> at
> org.apache.hadoop.hbase.io.hfile.HFile.pickReaderVersion(HFile.java:468)
> ... 15 more
> Caused by: java.lang.ClassNotFoundException:
> org.apache.hadoop.hbase.CellComparator$MetaCellComparator
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:264)
> at
> org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.getComparatorClass(FixedFileTrailer.java:579)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)