2013-11-15 3 views
0

Нужна помощь. Хотя есть много разных ответов, и я их пробовал, но не мог заставить его работать. Я intsalled hadoop локально в моем mac os, и когда я попытался скомпилировать java-программы, у меня появились следующие ошибки. Я знаю, что проблема связана с настройкой правильного пути к классу, но в случае, если путь класса не заставил его работать. Я установил Hadoop под /usr/local/Cellar/hadoop/1.2.1/libexecHadoop ClassPath Single Node Cluster 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: не может найти символ символ: класс Mapper местоположение: класс LineIndexer реализует Mapper { ^ LineIndexer.java:22: не может найти символ символа: класс LongWritable местоположение: класс LineIndexer реализует Mapper { ^ LineIndexer.Java: 22: не может найти символ символ: класс Text расположение: класс LineIndexer реализует Mapper { ^

+0

Можете ли вы опубликовать метод, с помощью которого вы компилируете код (IDE, командная строка - если да, то укажите полную командную строку?) –

+0

Я использую командную строку. это метод компиляции. javac -classpath $ {HADOOP_HOME} /hadoop-core-1.2.1.jar -d lineindexer_classes LineIndexer.java – Barro

+0

My 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 окр переменная должна быть /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