0

プロジェクトで sbt アセンブリを実行してファット jar を作成しようとしています。次のエラーが表示されます。

[error] (root/*:assembly) deduplicate: different file contents found in the following:
[error] /Users/xyz/.ivy2/cache/org.apache.hadoop/hadoop-mapreduce-client-core/jars/hadoop-mapreduce-client-core-2.2.0.jar:org/apache/hadoop/filecache/DistributedCache.class
[error] /Users/xyz/.ivy2/cache/org.apache.hadoop/hadoop-core/jars/hadoop-core-2.0.0-mr1-cdh4.7.1.jar:org/apache/hadoop/filecache/DistributedCache.class

hadoop-mapreduce-client-core の DistributedCache は非推奨になりました。私のbuild.sbtには以下が含まれています:

"org.apache.hadoop" % "hadoop-client" % "2.0.0-mr1-cdh4.7.1" excludeAll(
    ExclusionRule(organization = "javax.servlet"))

依存関係は次のようになります。

org.apache.hadoop:hadoop-client:2.2.0 
 org.apache.hadoop:hadoop-mapreduce-client-app:2.2.0
  org.apache.hadoop:hadoop-mapreduce-client-core:2.2.0

どうすればこれを処理できますか?

前もって感謝します!

4

1 に答える 1

0

hadoop-client:2.2.0 に依存しているときにロード中に mapreduce-client-app の依存関係の jar を削除する場合は、単純に intransitive を追加します。

"org.apache.hadoop" % "hadoop-client" % "2.2.0" intransitive()

これには hadoop-client:2.2.0 jar のみが含まれ、その依存関係はすべて除外されます。

于 2015-02-10T17:43:06.703 に答える