MapReduceを学ぼうとしていますが、今は少し迷っています。
特にこの一連の指示:
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ツールのセットが不足していますか?わからない
同じエラーが発生しました。
そして、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
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.jar
をHADOOP_CLASSPATH
に追加します。
Jdkをインストールすることはできません。 Javaフォルダー内の/lib/tools.jarを確認してください。
そうでない場合、#Sudo apt-get install default-jdkで、エラーは消えます。