0

マッパーをテストするために MRUnit を作成しました。ただし、DistributedCache から一部のデータを読み取るため、Eclipse で実行する方法がわかりません。Eclipse で通常のクラスとして実行すると、大量のエラーが発生します。これらは私が得るエラーメッセージです:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.hadoop.mrunit.TestDriver.<clinit>(TestDriver.java:38)
    at MapperCombinerReducerTester.setUp(MapperCombinerReducerTester.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at ....
4

1 に答える 1

1

エラーは、クラスパス上にない依存関係ライブラリ (commons-logging) に関連しています。プロジェクトの依存関係を管理するために Maven (m2e と組み合わせて) を使用していますか、それとも Eclipse で直接 Java プロジェクトを使用していますか?

0.9.0 は分散キャッシュのエミュレートをサポートしていないため、分散キャッシュに依存するマッパー/リデューサーのテストも MRUnit ではトリッキーです ( JIRA チケットを見ると 1.0.0 で導入されます)。以前にこれを行った1つの方法は、ローカルにキャッシュされたファイルのシンボリックリンクの使用を想定し、ユニットテストのセットアップでファイルをローカルディレクトリにコピーすることです(面倒ですが動作します)。

于 2013-01-09T03:07:51.897 に答える