0

hadoop2 で sqoop1 を動作させるのに苦労しました。Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.Tool私は常にsqoop1 が hadoop1 を使用しようとしていることを示唆するint エラーを実行します。しかし、 http: //www.us.apache.org/dist/sqoop/1.4.5/ から Hadoop 2.0.4-alpha リリースで sqoop1 jar をダウンロードしました。

では、hadoop2 で動作しないのはなぜですか?

PS: sqoop2 を動作させるために一生懸命努力しましたが、セットアップで多くの問題に直面しました。

また、この投稿http://mmicky.blog.163.com/blog/static/1502901542013118115417262/は、動作することを示唆していますが、この ClassNotFoundException に遭遇し続けます。

4

1 に答える 1

0

私は問題を理解しました。私が設定していたクラスパスは、おそらくhadoop実行可能ファイルによってオーバーライドされていました。したがって、Java コマンドを呼び出した場所で Hadoop 実行可能ファイルを変更し、以下のように Hadoop jar のクラスパスに -cp フラグを追加する必要がありました。

exec "$JAVA" -cp "$CLASSPATH:/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/common/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/ hadoop/common/lib/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/hdfs/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/hdfs/ lib/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/mapreduce/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/mapreduce/lib/ :/ usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/tools/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/tools/lib/ :/usr/local/ Cellar/hadoop/2.4.1/libexec/share/hadoop/yarn/ :/usr/local/Cellar/hadoop/2.4.1/libexec/share/hadoop/yarn/lib/ " $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@ "

于 2014-08-15T18:00:25.477 に答える