2013-11-15 162 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