【发布时间】:2014-01-28 11:36:43
【问题描述】:
我一直在尝试开发一个 web 应用程序,它通过 rest 获取数据并使用 phoenix 在 hbase 中插入相同的数据。我试图在 tomcat 上部署我的应用程序,它工作正常。但是在 jboss 上部署时会引发以下运行时异常。
Caused by: java.lang.RuntimeException: hbase-default.xml 文件好像是for and old version of HBase (null), this version is 0.94.7 在 org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java:68) 在 org.apache.hadoop.hbase.HBaseConfiguration.addHbaseResources(HBaseConfiguration.java:100) 在 org.apache.hadoop.hbase.HBaseConfiguration.create(HBaseConfiguration.java:111) 在 com.salesforce.phoenix.query.ConfigurationFactory$ConfigurationFactoryImpl.getConfiguration(ConfigurationFactory.java:51) 在 com.salesforce.phoenix.query.QueryServicesOptions.withDefaults(QueryServicesOptions.java:99) 在 com.salesforce.phoenix.query.QueryServicesImpl.(QueryServicesImpl.java:44) 在 com.salesforce.phoenix.jdbc.PhoenixDriver.(PhoenixDriver.java:67) 在 com.salesforce.phoenix.jdbc.PhoenixDriver.(PhoenixDriver.java:58) ... 11 更多
首先我认为类路径有两个默认的 xml,并且它会抛出错误,因为这两个中的一个来自一些旧版本的 hbase jar。但是类路径没有 hbase jar。它只有一个phoenix-2.0.1-client.jar。之后我尝试了以下方法
- 在 hbase-site.xml 中将“hbase.default.for.version.skip”设置为 true 并将其添加到类路径中
- 在 hbase-default.xml 中将“hbase.default.for.version.skip”设置为 true
- 为了实验,我还尝试删除 hbase-default.xml。
到目前为止没有任何效果。结果是恒定的。我正在使用 cloudera hbase cdh 4.4 。 任何帮助将不胜感激。 提前致谢。
【问题讨论】: