hadoop-common-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mikhail Yakshin <greycat.na....@gmail.com>
Subject Re: Not able to compile '.java' files
Date Sat, 06 Feb 2010 22:06:01 GMT
Hi,

> 1) I have 3 files, namely MaxTemperature.java, MaxTemperatureMapper.java,
> MaxTemperatureReducer.java. Now, I have to compile them to get the '.class'
> files which would be used by 'hadoop' command. I tried the following:
>
> 'javac -cp .:/hadoop/lib MaxTemperatureMapper.java'
>
> But it gives me the error that it doesn't recognize the packages '
> org.apache.hadoop.io', 'org.apache.hadoop.mapred' and so on.
>
> Can someone suggest something about that?

Well, for a start, adding "/hadoop/lib" to your classpath is:

1) Literally, yeah, "/hadoop/lib", which means that if will try to
find /hadoop in the root of your filesystem, then it will try to find
"lib" in it. If you meant "hadoop" subdirectory in your current
directory, use "hadoop/lib", not "/hadoop/lib".

2) You have to add individual jars in classpath, i.e.
"hadoop/lib/hadoop-0.18.3-core.jar:hadoop/lib/hadoop-0.18.3-test.jar:...",
etc. In recent versions of JDK, you can also specify "hadoop/lib/*",
but make sure you add quotes on this or escape "*" somehow, so it
won't get expanded with your shell.

> 2) Also, do we have to make the '.class' files by ourselves necessarily. Or
> is it somehow possible that hadoop will make .class files by itself (from
> the .java source files)?

Nope, Hadoop is not a Java compiler. Moreover, it's generally
insufficient to just create .class files - Hadoop generally operates
with .class files packed in .jar archives, which is a standard way of
software distribution for Java.

Running compilers, packers, etc, by hand is barely a good idea.
Consider using "ant" for building or using an IDE, such as Eclipse,
NetBeans or IDEA.

-- 
WBR, Mikhail Yakshin

Mime
View raw message