問題は、jar ファイルが Spring ORM を使用して永続構成をロードし、これらの構成に基づいて、ファイルが HDFS の適切なフォルダーに移動されることです。「hadoop jar」の代わりに「java -cp」を使用すると、HDFS へのコピーに失敗し、FileSystem エラーが発生します。
hadoop jar コマンド (Spring orm が注入されている) を使用して jar を呼び出すと、例外は次のようになります。
スレッド「メイン」での例外org.springframework.beans.factory.BeanCreationException:名前のBeanの作成中にエラーが発生しました
クラスパスリソース[applicationContext.xml]に「org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0」を定義
クラス パス リソース [applicationContext.xml] で定義された名前が「entityManagerFactory」の Bean の作成中にエラーが発生しました: init メソッドの呼び出しに失敗しました。ネストされた例外は java.lang.IllegalStateException です: 名前 'Persistance' の持続性ユニットの定義が競合しています: file:/home/user/Desktop/ABC/apnJar.jar, file:/tmp/hadoop-ABC/hadoop-unjar2841422106164401019/
原因: java.lang.IllegalStateException: 名前 'Persistance' の持続性ユニットの定義が競合しています
Hadoop が jar ファイルをいくつかの tmp フォルダーに解凍しているようですが、これは本当に必要ですか? 構成を変更して、この手順を省略できますか?
これについての考えは大歓迎です。