我一直在尝试开发一个 web 应用程序,它通过 rest 获取数据并使用 phoenix 在 hbase 中插入相同的数据。我试图在 tomcat 上部署我的应用程序,它工作正常。但是在 jboss 上部署时会引发以下运行时异常。
引起:java.lang.RuntimeException: hbase-default.xml 文件似乎是旧版本的 HBase (null),这个版本是 0.94.7 at 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) at 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 。任何帮助将不胜感激。提前致谢。