You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Dejan Menges <de...@gmail.com> on 2011/10/23 00:31:27 UTC
HBase version mismatch
Hi,
I have pretty interesting problem.
We've had application which was running on Tomcat while we were using HBase
0.20.3 and before we decided to migrate to HBase 0.90.4
As we migrated successfully, I started getting strange error trying to run
this application:
Error during initalization of HTablePool - NativeException:
java.lang.RuntimeException: hbase-default.xml file seems to be for and old
version of HBase (null), this version is 0.90.4:
org/apache/hadoop/hbase/HBaseConfiguration.java:66:in
`checkDefaultsVersion'
org/apache/hadoop/hbase/HBaseConfiguration.java:89:in `addHbaseResources'
This machine don't have any version of HBase or Hadoop (locally) and it's
configuration only points to remote Zookeeper, which successfully does it's
job, as other application uses new version without any problem.
I'm trying to figure out how/where client is finding hbase-default.xml and
how it's checking it's version, as we don't have that file at all, as a
recommendation to upgrade to new HBase. Does it means that we actually need
this file in $HBASE_HOME/conf for client to be able to figure out which
version we are using?
I'm also checking HBase code for this implementation, and (maybe it's
because it's late) I'm not able to figure out what's happening.
Regards,
Dejan
Re: HBase version mismatch
Posted by Dejan Menges <de...@gmail.com>.
Thanks a lot, that answers my questions.
Best regards,
Dejan
Sent from my iPhone
On 23. 10. 2011., at 08:50, Mayuresh <ma...@gmail.com> wrote:
> The compiled version will have the actual version set instead of the
> variables.
>
> One thing you can do is take the compiled version of hbase-default.xml and
> bundle/replace in your client. It should be ok not having this file in the
> HBASE_HOME/conf directory. Just have it in the client
> On Oct 23, 2011 4:12 AM, "Dejan Menges" <de...@gmail.com> wrote:
>
>> So, I figured out what's happening. As hbase-default.xml is not standard in
>> $HBASE_HOME/conf anymore in 0.90.4, client can't check version in:
>>
>> <property skipInDoc="true">
>> <name>hbase.defaults.for.version</name>
>> <value>@@@VERSION@@@</value>
>> <description>
>> This defaults file was compiled for version @@@VERSION@@@. This
>> variable
>> is used
>> to make sure that a user doesn't have an old version of
>> hbase-default.xml on the
>> classpath.
>> </description>
>> </property>
>>
>> Luckily, found this in src folder :)
>>
>> So, I think this is good starting point for my problem resolution, but I
>> would anyway like to know, if somebody can help me, more about this option
>> and it's usage.
>>
>> Regards,
>> Dejan
>>
>> On Sun, Oct 23, 2011 at 12:31 AM, Dejan Menges <dejan.menges@gmail.com
>>> wrote:
>>
>>> Hi,
>>>
>>> I have pretty interesting problem.
>>>
>>> We've had application which was running on Tomcat while we were using
>> HBase
>>> 0.20.3 and before we decided to migrate to HBase 0.90.4
>>>
>>> As we migrated successfully, I started getting strange error trying to
>> run
>>> this application:
>>>
>>> Error during initalization of HTablePool - NativeException:
>>> java.lang.RuntimeException: hbase-default.xml file seems to be for and
>> old
>>> version of HBase (null), this version is 0.90.4:
>>> org/apache/hadoop/hbase/HBaseConfiguration.java:66:in
>>> `checkDefaultsVersion'
>>> org/apache/hadoop/hbase/HBaseConfiguration.java:89:in `addHbaseResources'
>>>
>>> This machine don't have any version of HBase or Hadoop (locally) and it's
>>> configuration only points to remote Zookeeper, which successfully does
>> it's
>>> job, as other application uses new version without any problem.
>>>
>>> I'm trying to figure out how/where client is finding hbase-default.xml
>> and
>>> how it's checking it's version, as we don't have that file at all, as a
>>> recommendation to upgrade to new HBase. Does it means that we actually
>> need
>>> this file in $HBASE_HOME/conf for client to be able to figure out which
>>> version we are using?
>>>
>>> I'm also checking HBase code for this implementation, and (maybe it's
>>> because it's late) I'm not able to figure out what's happening.
>>>
>>> Regards,
>>> Dejan
>>>
>>
Re: HBase version mismatch
Posted by Mayuresh <ma...@gmail.com>.
The compiled version will have the actual version set instead of the
variables.
One thing you can do is take the compiled version of hbase-default.xml and
bundle/replace in your client. It should be ok not having this file in the
HBASE_HOME/conf directory. Just have it in the client
On Oct 23, 2011 4:12 AM, "Dejan Menges" <de...@gmail.com> wrote:
> So, I figured out what's happening. As hbase-default.xml is not standard in
> $HBASE_HOME/conf anymore in 0.90.4, client can't check version in:
>
> <property skipInDoc="true">
> <name>hbase.defaults.for.version</name>
> <value>@@@VERSION@@@</value>
> <description>
> This defaults file was compiled for version @@@VERSION@@@. This
> variable
> is used
> to make sure that a user doesn't have an old version of
> hbase-default.xml on the
> classpath.
> </description>
> </property>
>
> Luckily, found this in src folder :)
>
> So, I think this is good starting point for my problem resolution, but I
> would anyway like to know, if somebody can help me, more about this option
> and it's usage.
>
> Regards,
> Dejan
>
> On Sun, Oct 23, 2011 at 12:31 AM, Dejan Menges <dejan.menges@gmail.com
> >wrote:
>
> > Hi,
> >
> > I have pretty interesting problem.
> >
> > We've had application which was running on Tomcat while we were using
> HBase
> > 0.20.3 and before we decided to migrate to HBase 0.90.4
> >
> > As we migrated successfully, I started getting strange error trying to
> run
> > this application:
> >
> > Error during initalization of HTablePool - NativeException:
> > java.lang.RuntimeException: hbase-default.xml file seems to be for and
> old
> > version of HBase (null), this version is 0.90.4:
> > org/apache/hadoop/hbase/HBaseConfiguration.java:66:in
> > `checkDefaultsVersion'
> > org/apache/hadoop/hbase/HBaseConfiguration.java:89:in `addHbaseResources'
> >
> > This machine don't have any version of HBase or Hadoop (locally) and it's
> > configuration only points to remote Zookeeper, which successfully does
> it's
> > job, as other application uses new version without any problem.
> >
> > I'm trying to figure out how/where client is finding hbase-default.xml
> and
> > how it's checking it's version, as we don't have that file at all, as a
> > recommendation to upgrade to new HBase. Does it means that we actually
> need
> > this file in $HBASE_HOME/conf for client to be able to figure out which
> > version we are using?
> >
> > I'm also checking HBase code for this implementation, and (maybe it's
> > because it's late) I'm not able to figure out what's happening.
> >
> > Regards,
> > Dejan
> >
>
Re: HBase version mismatch
Posted by Dejan Menges <de...@gmail.com>.
So, I figured out what's happening. As hbase-default.xml is not standard in
$HBASE_HOME/conf anymore in 0.90.4, client can't check version in:
<property skipInDoc="true">
<name>hbase.defaults.for.version</name>
<value>@@@VERSION@@@</value>
<description>
This defaults file was compiled for version @@@VERSION@@@. This variable
is used
to make sure that a user doesn't have an old version of
hbase-default.xml on the
classpath.
</description>
</property>
Luckily, found this in src folder :)
So, I think this is good starting point for my problem resolution, but I
would anyway like to know, if somebody can help me, more about this option
and it's usage.
Regards,
Dejan
On Sun, Oct 23, 2011 at 12:31 AM, Dejan Menges <de...@gmail.com>wrote:
> Hi,
>
> I have pretty interesting problem.
>
> We've had application which was running on Tomcat while we were using HBase
> 0.20.3 and before we decided to migrate to HBase 0.90.4
>
> As we migrated successfully, I started getting strange error trying to run
> this application:
>
> Error during initalization of HTablePool - NativeException:
> java.lang.RuntimeException: hbase-default.xml file seems to be for and old
> version of HBase (null), this version is 0.90.4:
> org/apache/hadoop/hbase/HBaseConfiguration.java:66:in
> `checkDefaultsVersion'
> org/apache/hadoop/hbase/HBaseConfiguration.java:89:in `addHbaseResources'
>
> This machine don't have any version of HBase or Hadoop (locally) and it's
> configuration only points to remote Zookeeper, which successfully does it's
> job, as other application uses new version without any problem.
>
> I'm trying to figure out how/where client is finding hbase-default.xml and
> how it's checking it's version, as we don't have that file at all, as a
> recommendation to upgrade to new HBase. Does it means that we actually need
> this file in $HBASE_HOME/conf for client to be able to figure out which
> version we are using?
>
> I'm also checking HBase code for this implementation, and (maybe it's
> because it's late) I'm not able to figure out what's happening.
>
> Regards,
> Dejan
>