2014-11-30 4 views
0

Мой вопрос кажется глупым для пользователей HADOOP. Но я немного путаюсь с использованием Generics в карте, уменьшающей проблему, например «WORD COUNT».Использование дженериков в карте HADOOP уменьшить проблемы

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

В слове графа задачи,

public class WordCountMapper extends 
     Mapper<LongWritable, Text, Text, LongWritable> { 
    @Override 
    protected void map(LongWritable key, Text value, Context context) 
      throws IOException, InterruptedException { 
     // TODO Auto-generated method stub 
     ... 

     } 
    } 

} 

Пожалуйста, кто может очистить меня использование дженериков здесь. Пожалуйста, поправьте меня, если я ошибся, задавая этот вопрос.

Теперь я понимаю, что дженерики используются здесь для пары значений ключа (KEY IN, VALUE IN, KEY OUT, VALUE OUT). Но все же я не понимаю, почему здесь используется Generics для пары ключевых значений. Это не там другой способ сделать то же самое. В чем преимущество использования Generics здесь?

Спасибо!

ответ

1

MapReduce использует Generics специально в Mapper и Reducer, чтобы указать, какой тип ввода и вывода ожидается для чтения и записи.

В примере вы указали ваш WordCountMapper расширяет Mapper класс с указанными дженериков Mapper<LongWritable, Text, Text, LongWritable> где первые два класса LongWritable и Text представляет собой ключ ввода и значение класс Mapper ожидает читать, в то время как последние два класса Text и LongWritable представляет собой выходной ключ и значение классов map ожидается способ испускания.

Это обсуждение thread дает более полное представление о том, почему в MapReduce реализованы генерики. Кроме того, это JIRA Issue дает больше информации.

+0

hello @Ashrith: не могли бы вы объяснить мне преимущество использования GENERIS здесь, кроме той, которая просто назначает пару KEY VALUE. – user4221591

Смежные вопросы