Как скомпилировать мою Java-программу (WordCount) для Hadoop - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь скомпилировать мою первую программу 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 ошибок

Проблема в том, что я неЯ не понимаю ошибок, которые он мне дает, как будто он не видит ";"и я попытался переписать это, но ничего не меняется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...