I apologize in advance if this is a known issue. I did some searching but
did not see it reported.
Last night I used the 4.0.0 binary
distribution phoenix-4.0.0-incubating-client.jar from the hadoop-2
directory in the binary distribution.
I was trying to connect to HBase 0.98.1 + Hadoop 2.2.0 using Squirrel SQL
but getting the error message:
java.util.concurrent.ExecutionException: java.lang.RuntimeException:
java.lang.RuntimeException: hbase-default.xml file seems to be for and old
version of HBase (0.98.1-hadoop1), this version is 0.98.1-hadoop2
So, I built phoenix-4.0.0-incubating-client.jar from source using the
directions in BUILDING in the root of the 4.0.0 distribution tarball.
I am able to use Squirrel SQL to connect now.
I unzippped the binary phoenix-4.0.0-incubating-client.jar and took a look
in hbase-defaults.xml. I noticed base.defaults.for.version.skip is set to
false in this file:
<property>
<name>hbase.defaults.for.version.skip</name>
<value>false</value>
<description>Set to true to skip the 'hbase.defaults.for.version' check.
Setting this to true can be useful in contexts other than
the other side of a maven generation; i.e. running in an
ide. You'll want to set this boolean to true to avoid
seeing the RuntimException complaint: "hbase-default.xml file
seems to be for and old version of HBase (\${hbase.version}), this
version is X.X.X-SNAPSHOT"</description>
</property>
I tried changing this value, then using jar to re-create
phoenix-4.0.0-incubating-client.jar but still got the error reported above
when I tried to use it with Squirrel SQL.
However, I notice that the same property has a different value in the
source distribution:
<property>
<name>hbase.defaults.for.version.skip</name>
<value>true</value>
<description>
Set to true to skip the 'hbase.defaults.for.version' check.
Setting this to true can be useful in contexts other than
the other side of a maven generation; i.e. running in an
ide. You'll want to set this boolean to true to avoid
seeing the RuntimException complaint: "hbase-default.xml file
seems to be for and old version of HBase (@@@VERSION@@@), this
version is X.X.X-SNAPSHOT"
</description>
</property>
In fact, it seems to me this is the only property that is assigned a value
in hbase-default.xml in the source distribution.
I'm fine with building phoenix from source.
Is the version of phoenix-4.0.0-incubating-client.jar in hadoop-2 the wrong
file? The md5sum I get is: e6f9e34e3c69dffa68875be701bb3a1f
-John