web-dev-qa-db-ja.com

メインクラスcom.Sun.tools.javac.Mainhadoopmapreduceが見つからないかロードできませんでした

MapReduceを学ぼうとしていますが、今は少し迷っています。

http://hadoop.Apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Usage

特にこの一連の指示:

Compile WordCount.Java and create a jar:

$ bin/hadoop com.Sun.tools.javac.Main WordCount.Java 

ターミナルにhadoopと入力すると、引数を提供する「ヘルプ」が表示されるので、Hadoopがインストールされていると思います。

コマンドを入力すると:

WordCount.Javaをコンパイルし、jarを作成します。

hadoop com.Sun.tools.javac.Main WordCount.Java

エラーが発生します:

Error: Could not find or load main class com.Sun.tools.javac.Main

以前に他のプログラムを作成するために使用したことがあるので、Javaがインストールされ、コンピューターで動作していることを知っています。

このコマンドは以下を出力します。

$ /usr/libexec/Java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

たぶん私はJavaツールのセットが不足していますか?わからない

10
Liondancer

同じエラーが発生しました。

そして、HADOOP_CLASSPATH環境パラメーターを追加して解決しました。

export HADOOP_CLASSPATH=/usr/lib/jvm/Java-7-openjdk-AMD64/lib/tools.jar

OpenJDK7がインストールされていることを確認してください。私はUbuntu14.04を使用しています:

Sudo apt-get install openjdk-7-jdk
18

bin/hadoop com.Sun.tools.javac.Main WordCount.Javaは最終的にJava com.Sun.tools.javac.Main WordCount.Javaとして実行されます。

クラスパス/ javahomeが正しい場合は、自分でJava ...と入力し、Tabキーを使用して名前com.Sun.tools...を確認してください。たぶん名前は適切なものではありません。 (たとえば、SunではなくOracleのJava)を使用しています)

もう1つの提案は、$HADOOP_HOME/etc/hadoop/hadoop-env.shを変更することです。 tools.jarHADOOP_CLASSPATHに追加します。

3
Mr. Z

Jdkをインストールすることはできません。 Javaフォルダー内の/lib/tools.jarを確認してください。
そうでない場合、#Sudo apt-get install default-jdkで、エラーは消えます。

2
Anna Chen