I am trying to learn MapReduce but I am a little lost right now.
http://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Usage
Particularly this set of instructions:
Compile WordCount.java and create a jar:
$ bin/hadoop com.sun.tools.javac.Main WordCount.java
When I type in hadoop
in my terminal I am able to see the "Help" made which provides arguments so I believe I have hadoop installed.
When I type in the command:
Compile WordCount.java and create a jar:
hadoop com.sun.tools.javac.Main WordCount.java
I get the error:
Error: Could not find or load main class com.sun.tools.javac.Main
I know I have Java installed and working on my computer because I've used it before to create other programs.
This command outputs:
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home
Maybe I am missing a set of Java tools? Not sure
I got same error.
And i solved it by add HADOOP_CLASSPATH environment parameter:
export HADOOP_CLASSPATH=/usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar
Please make sure that you installed OpenJDK7. I am using Ubuntu 14.04:
sudo apt-get install openjdk-7-jdk
The bin/hadoop com.sun.tools.javac.Main WordCount.java
is finaly running as
java com.sun.tools.javac.Main WordCount.java
.
If your classpath/javahome is right, then try to type java ...
yourself, and check the name com.sun.tools...
by using TAB key. Maybe the name is not a proper one. (egg. you are using java from Oracle rather than SUN)
Another suggestion is modifying the $HADOOP_HOME/etc/hadoop/hadoop-env.sh
. Add the tools.jar
into HADOOP_CLASSPATH
.
You may not install jdk. Check your /lib/tools.jar in your java folder.
If not, #sudo apt-get install default-jdk and the error disappears.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With