Я пытаюсь скомпилировать мою первую программу MapReduce: WordCount
Вот мой класс WordcountMapper:
package wordcount;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
@Override
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
}
public void run(Context context) throws IOException, InterruptedException {
setup(context);
while (context.nextKeyValue()) {
map(context.getCurrentKey(), context.getCurrentValue(), context);
}
cleanup(context);
}
}
У меня также есть классы WordCountReducer и WordCountDriving.Я пытаюсь скомпилировать все с помощью команды:
javac -classpath $HADOOP_CLASSPATH WordCount*.java
Но результат довольно неожиданный:
WordCountMapper.java:23: error: <identifier> expected
Public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:23: error: invalid method declaration; return type required
Public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:25: error: ';' expected
String line = value.toString()
^
WordCountMapper.java:27: error: ';' expected
StringTokenizer tokenizer = new StringTokenizer(line)
^
WordCountMapper.java:35: error: illegal start of expression
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: illegal start of expression
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: ';' expected
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: ';' expected
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: not a statement
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: ';' expected
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: not a statement
public void run(Context context) throws IOException, InterruptedException {
^
WordCountMapper.java:35: error: ';' expected
public void run(Context context) throws IOException, InterruptedException {
^
12 ошибок
Проблема в том, что я неЯ не понимаю ошибок, которые он мне дает, как будто он не видит ";"и я попытался переписать это, но ничего не меняется