私は、残りのデータを取得し、フェニックスを使用してhbaseに同じデータを挿入するWebアプリを開発しようとしています。アプリケーションを tomcat にデプロイしようとしましたが、正常に動作します。ただし、jboss へのデプロイ中に次のランタイム例外がスローされます。
原因: java.lang.RuntimeException: hbase-default.xml ファイルは古いバージョンの HBase (null) 用のようです。このバージョンは org.apache.hadoop.hbase.HBaseConfiguration.checkDefaultsVersion(HBaseConfiguration.java で 0.94.7 です。 :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 もっと見る
最初に、クラスパスには2つのデフォルトxmlがあり、2つのうちの1つがhbase jarの古いバージョンのものであるため、エラーがスローされると考えました。しかし、クラス パスには hbase jar がありません。phoenix-2.0.1-client.jar は 1 つだけです。その後、次のことを試しました
- 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 を使用しています。どんな助けでも大歓迎です。前もって感謝します。