0

需要一些帮助。尽管有很多不同的答案可用,我也尝试过它们但无法使其工作。我在我的mac os中本地安装了hadoop,当我尝试编译java程序时,我得到了以下错误。我知道问题在于设置正确的类路径,但在可能的情况下,提供类路径并不能使其工作。我已经在 /usr/local/Cellar/hadoop/1.2.1/libexec 下安装了 hadoop

我将我的 java home 设置为 export JAVA_HOME="$(/usr/libexec/java_home)" 并将类路径设置为 export HADOOP_CLASSPATH=${HADOOP_HOME}/bin:${JAVA_HOME}/bin:${PATH}

但仍然出现以下错误。任何有关设置正确类路径的建议将不胜感激。

LineIndexer.java:6:包 org.apache.hadoop.io 不存在导入 org.apache.hadoop.io.LongWritable;^ LineIndexer.java:7: 包 org.apache.hadoop.io 不存在导入 org.apache.hadoop.io.Text;^ LineIndexer.java:8: 包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.FileInputFormat;^ LineIndexer.java:9: 包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.FileOutputFormat;^ LineIndexer.java:10:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.FileSplit;^ LineIndexer.java:11:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.JobClient;^ LineIndexer.java:12:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.JobConf;^ LineIndexer.java:13:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.MapReduceBase;^ LineIndexer.java:14:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.Mapper;^ LineIndexer.java:15:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.OutputCollector;^ LineIndexer.java:16:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop.mapred.Reducer;^ LineIndexer.java:17:包 org.apache.hadoop.mapred 不存在导入 org.apache.hadoop。mapred.Reporter;^ LineIndexer.java:21: 找不到符号 symbol: class MapReduceBase location: class LineIndexer public static class LineIndexMapper extends MapReduceBase ^ LineIndexer.java:22: 找不到符号 symbol: class Mapper location: class LineIndexer implements Mapper { ^ LineIndexer.java: 22:找不到符号符号:类 LongWritable 位置:类 LineIndexer 实现 Mapper { ^ LineIndexer.java:22:找不到符号符号:类文本位置:类 LineIndexer 实现 Mapper { ^

4

1 回答 1

0

看起来你的类路径是错误的,试试这个:

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

或者将您的 HADOOP_HOME 环境变量重新定义为/usr/local/cellar/hadoop-1.2.1

于 2013-11-15T00:42:58.027 回答