2013-11-15 163 views
0

需要一些幫助。雖然有很多不同的答案可用,我也嘗試過但不能使其工作。我在我的Mac OS中本地化了hadoop,當我嘗試編譯java程序時,出現以下錯誤。我知道問題在於設置正確的類路徑,但是在某些情況下,提供類路徑並不能使其工作。我已經在/usr/local/Cellar/hadoop/1.2.1/libexec下安裝了hadoopHadoop ClassPath單節點羣集Mac OS

我有我的java家設置爲導出JAVA_HOME =「$(/ usr/libexec/java_home)」 和類路徑設置爲export HADOOP_CLASSPATH = $ {HADOOP_HOME}/bin:$ {JAVA_HOME}/bin:$ {PATH}

但仍然出現以下錯誤。任何建立正確的班級路徑的建議,將不勝感激。

LineIndexer.java:6:包org.apache.hadoop.io不存在 import org.apache.hadoop.io.LongWritable; ^ LineIndexer.java:7:包org.apache.hadoop.io不存在 import org.apache.hadoop.io.Text; ^ LineIndexer.java:8:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.FileInputFormat; ^ LineIndexer.java:9:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.FileOutputFormat; ^ LineIndexer.java:10:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.FileSplit; ^ LineIndexer.java:11:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.JobClient; ^ LineIndexer.java:12:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.JobConf; ^ LineIndexer.java:13:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.MapReduceBase; ^ LineIndexer.java:14:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.Mapper; ^ LineIndexer.java:15:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.OutputCollector; ^ LineIndexer.java:16:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.Reducer; ^ LineIndexer.java:17:包org.apache.hadoop.mapred不存在 import org.apache.hadoop.mapred.Reporter; ^ LineIndexer.java:21:找不到符號 符號:類MapReduceBase 位置:類LineIndexer 公共靜態類LineIndexMapper擴展MapReduceBase ^ LineIndexer.java:22:找不到符號 符號:類映射 位置:類LineIndexer 實現映射{ ^ LineIndexer.java:22:找不到符號 符號:類LongWritable 位置:類LineIndexer 實現映射{ ^ LineIndexer。Java的:22:找不到符號 符號:類文本 位置:類LineIndexer 實現映射{ ^

+0

你可以發佈你編譯代碼的方法(IDE,命令行 - 如果是的話請包括完整的命令行?) –

+0

我正在使用命令行。這是編譯方法.. javac -classpath $ {HADOOP_HOME} /hadoop-core-1.2.1.jar -d lineindexer_classes LineIndexer.java – Barro

+0

我的HADOOP_HOME設置爲/usr/local/cellar/hadoop/1.2.1/libexec – Barro

回答

0

看起來你的類路徑是錯誤的,試試這個:

javac -classpath /usr/local/cellar/hadoop-1.2.1/hadoop-core-1.2.1.jar 

或重新定義你的HADOOP_HOME ENV變量是/usr/local/cellar/hadoop-1.2.1

+0

謝謝。它有幫助。我用javac -classpath /usr/local/cellar/hadoop/1.2.1/libexec/hadoop-core-1.2.1.jar -d lineindexer_classes LineIndexer.java 它被編譯。 – Barro