需要一些帮助。尽管有很多不同的答案可用,我也尝试过它们但无法使其工作。我在我的mac os中本地安装了hadoop,当我尝试编译java程序时,我得到了以下错误。我知道问题在于设置正确的类路径,但在可能的情况下,提供类路径并不能使其工作。我已经在/usr/local/Cellar/hadoop/1.2.1/libexec 下安装了 hadoop
我的 java home 设置为 export JAVA_HOME="$(/usr/libexec/java_home)"
并且类路径设置为导出 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:找不到符号
符号:类 MapReduceBase
位置:类 LineIndexer
公共(public)静态类 LineIndexMapper 扩展 MapReduceBase
^
LineIndexer.java:22:找不到符号
符号:类映射器
位置:类 LineIndexer
实现映射器{
^
LineIndexer.java:22:找不到符号
符号:类 LongWritable
位置:类 LineIndexer
实现映射器{
^
LineIndexer.java:22:找不到符号
符号:类文本
位置:类 LineIndexer
实现映射器{
^
最佳答案
看起来你的类路径是错误的,试试这个:
javac -classpath /usr/local/cellar/hadoop-1.2.1/hadoop-core-1.2.1.jar
或者将您的 HADOOP_HOME 环境变量重新定义为
/usr/local/cellar/hadoop-1.2.1
关于java - Hadoop ClassPath 单节点集群 Mac OS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991037/