0

Maven によって管理される j2ee プロジェクトがあり、ローカル マシンに Hadoop ノードがあり、Hadoop ジョブをコードで送信します Configuration conf = new Configuration(); conf.set("baseFileLocation", baseFileLocation); conf.set("fs.default.name", "hdfs://localhost:9000");
conf.set("hadoop.job.user","pin"); conf.set("mapred.job.tracker","localhost:9001"); ToolRunner.run(conf,new LDAJob(), ldaArgs);

しかし、ジョブを送信した後、いくつかの ClassNotFoundexception が発生しました。次に、依存関係の jar を $HADOOP_PREFIX/libexec/lib/ に追加し、ようやく作業が完了しました。依存関係 jar はすべてローカルの maven リポジトリにあり、maven リポジトリは既にクラスパスにあります。依存関係 jar を $HADOOP_PREFIX/libexec/lib/ に追加する以外に、依存関係 jar がどこにあるかを Hadoop に知らせたい場合はどうすればよいですか

4

1 に答える 1

1

おそらく、$HADOOP_PREFIX/libexec/lib/ に Maven リポジトリ パスを指すソフト リンクを作成できます。

Eclipse を使用する場合、maven リポジトリ パスをプロジェクト ビルド パスに追加できます。

window->preferences->java->Build Path->ClassPath Variable

create a M2_REPO= リポジトリ パス

于 2013-07-23T01:19:10.947 に答える