Объяснение параметров Hadoop Mapper

1

Я новичок в Hadoop и смущен параметрами Mapper.

Возьмите известный WordCount как образец:

class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> {
  private Text outputKey;
  private IntWritable outputVal;

  @Override
  public void setup(Context context) {
    outputKey = new Text();
    outputVal = new IntWritable(1);
  }

  @Override
  public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
    StringTokenizer stk = new StringTokenizer(value.toString());
    while(stk.hasMoreTokens()) {
      outputKey.set(stk.nextToken());
      context.write(outputKey, outputVal);
    }
  }
}

См. Функцию map, параметры - это Object key, " Text value и Context context Я смущен тем, что выглядит Object key (вы видите, key никогда не используется в функции " Map).

Поскольку формат входного файла выглядит так:

Deer
Beer
Bear
Beer
Deer
Deer
Bear
...

Я знаю, что ценность выглядит как каждая строка Deer, Beer и т.д. Они обрабатываются по строкам.

Но как выглядит ключ? Как решить, какой ключ типа данных должен использовать?

Теги:
hadoop
cluster-computing
distributed-computing
mapreduce

1 ответ

1
Лучший ответ

Все здесь зависит от вашего InputFormat класса InputFormat. Он анализирует исходный источник данных и предоставляет вам пары (ключ, значение). Различные реализации формата ввода могут предоставить вам разные потоки, даже имеющие один и тот же источник ввода.

Вот статья, демонстрирующая подход:

https://hadoopi.wordpress.com/2013/05/31/custom-recordreader-processing-string-pattern-delimited-records/

Главный драйвер здесь - RecordReader.

  • 0
    Здравствуйте, ссылка не работает, не могли бы вы взглянуть?
  • 0
    Добавлены разные иллюстрации. Это не так сложно найти их, если вы знаете, что искать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню