On Thu, Feb 17, 2011 at 4:19 PM, Ted Yu <[email protected]> wrote: > My earlier point was that we shouldn't require hbase-default.xml to be > present in the classpath because users may repackage hbase jar. > We should fault out if there *is* one hbase-default.xml in the classpath > *and* it doesn't contain the correct version value.
Yes, we should require hbase-default.xml. It is a necessary part of hbase. If you don't have it, it should fail. > > > On Thu, Feb 17, 2011 at 4:13 PM, Todd Lipcon <[email protected]> wrote: > >> On Thu, Feb 17, 2011 at 4:03 PM, Ted Yu <[email protected]> wrote: >> >>> An alternative is to check the value of a well-known config parameter >>> which >>> has changed from 20.6 (0.89) to 0.90.x >>> >>> After almost all 0.20.6 and 0.89 deployments are gone in the world, >>> toggle >>> to version check. >>> >> >> Better would be to use the classloader to find the hbase-default.xml path >> that got loaded and include that in the error. File a JIRA and let's fix for >> 0.90.2. >> >> -Todd >> >> >>> >>> On Thu, Feb 17, 2011 at 3:51 PM, Ted Yu <[email protected]> wrote: >>> >>> > Your change cannot distinguish missing hbase-default.xml and the old >>> > hbase-default.xml >>> > This makes debugging hard, considering what I said in my first email. >>> > >>> > >>> > On Thu, Feb 17, 2011 at 3:26 PM, Todd Lipcon <[email protected]> >>> wrote: >>> > >>> >> Then you've probably got another hbase-default somewhere on your >>> >> classpath. >>> >> >>> >> >>> >> On Thu, Feb 17, 2011 at 3:26 PM, Ted Yu <[email protected]> wrote: >>> >> >>> >>> I checked the size of the packaged file which is the same as the >>> build >>> >>> artifact: >>> >>> >>> >>> tyumac:hbase-0.90.1 tyu$ ls -l target/classes/hbase-default.xml >>> >>> -rw-r--r-- 1 tyu staff 23610 Feb 11 11:50 >>> >>> target/classes/hbase-default.xml >>> >>> >>> >>> I also unpacked the file and saw the correct version. >>> >>> >>> >>> >>> >>> On Thu, Feb 17, 2011 at 3:17 PM, Todd Lipcon <[email protected]> >>> wrote: >>> >>> >>> >>>> Where are you getting the hbase-defaults.xml file that you're >>> packaging >>> >>>> into your jar? >>> >>>> >>> >>>> You need to take it out of the hbase jar that ships with 0.90.1 and >>> >>>> package that one -- my guess is you've packaged one from an older >>> version. >>> >>>> >>> >>>> -Todd >>> >>>> >>> >>>> On Thu, Feb 17, 2011 at 3:01 PM, Ted Yu <[email protected]> >>> wrote: >>> >>>> >>> >>>>> We re-package hbase jar into the jar containing our classes. >>> >>>>> >>> >>>>> [sjc1-hadoop0.sjc1:hadoop 36789]jar tvf >>> >>>>> /usr/local/hadoop/sims/lib/flow-m2m_hbase_regr-38.jar | grep >>> MetaSca >>> >>>>> 7030 Fri Feb 11 11:50:28 GMT+00:00 2011 >>> >>>>> org/apache/hadoop/hbase/client/MetaScanner.class >>> >>>>> 2027 Fri Feb 11 11:50:28 GMT+00:00 2011 >>> >>>>> org/apache/hadoop/hbase/client/MetaScanner$1.class >>> >>>>> [sjc1-hadoop0.sjc1:hadoop 36791]jar tvf >>> >>>>> /usr/local/hadoop/sims/lib/flow-m2m_hbase_regr-38.jar | grep >>> default | >>> >>>>> grep >>> >>>>> hbase >>> >>>>> 23610 Fri Feb 11 11:50:22 GMT+00:00 2011 hbase-default.xml >>> >>>>> >>> >>>>> If the above jar structure is incorrect, please comment. >>> >>>>> >>> >>>>> Using 0.90.1 jar as client, I saw: >>> >>>>> >>> >>>>> INFO [2011-02-17 06:52:23] (ExecUtil.java:261) - >>> >>>>> java.lang.RuntimeException: hbase-default.xml file seems to be for >>> and >>> >>>>> old version of HBase (null), this version is 0.90.1 >>> >>>>> INFO [2011-02-17 06:52:23] (ExecUtil.java:261) - at >>> >>>>> >>> >>>>> >>> org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java:66) >>> >>>>> INFO [2011-02-17 06:52:23] (ExecUtil.java:261) - at >>> >>>>> >>> >>>>> >>> org.apache.hadoop.hbase.HBaseConfiguration.addHbaseResources(HBaseConfiguration.java:76) >>> >>>>> INFO [2011-02-17 06:52:23] (ExecUtil.java:261) - at >>> >>>>> >>> >>>>> >>> org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:44) >>> >>>>> INFO [2011-02-17 06:52:23] (ExecUtil.java:261) - at >>> >>>>> >>> >>>>> >>> org.apache.hadoop.hbase.HBaseConfiguration.<init>(HBaseConfiguration.java:56) >>> >>>>> >>> >>>>> I looked at Configuration.java which has quiet mode setter. But the >>> >>>>> above >>> >>>>> exception happened in ctor. >>> >>>>> >>> >>>>> Please advise how I can troubleshoot this. >>> >>>>> >>> >>>> >>> >>>> >>> >>>> >>> >>>> -- >>> >>>> Todd Lipcon >>> >>>> Software Engineer, Cloudera >>> >>>> >>> >>> >>> >>> >>> >> >>> >> >>> >> -- >>> >> Todd Lipcon >>> >> Software Engineer, Cloudera >>> >> >>> > >>> > >>> >> >> >> >> -- >> Todd Lipcon >> Software Engineer, Cloudera >> > > -- Todd Lipcon Software Engineer, Cloudera
