Мой вопрос такой.Apache Hadoop, в его документации упоминается один следующий пример кода для потоковой передачи hadoop:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
-input myInputDirs \
-output myOutputDir \
-mapper /bin/cat \
-reducer /bin/wc
Теперь я передаю текстовый файл этому стримеру.Допустим, текстовый файл содержит только две следующие строки:
This is line1
It becomes line2
Команда hadoop streaming работает отлично и проблем нет.
Но я не могу ответить на следующие вопросы, несмотря на то, что я много раз читал выше связанные материалы и другие примеры в Интернете.Допустим, существует только один преобразователь и только один преобразователь:
- Модуль сопоставления, как я понимаю, получает пару (ключ, значение) в качестве входных данных.В случае двух приведенных выше строк, что будет ключом, а что будет значением.
- Функция Mapper - это 'cat'.Будет ли 'cat' действовать на ключевую часть маппера или на часть значения маппера.
- Каким будет вывод маппера, если на входе находятся только две вышеуказанные строки.Что будет «ключом», а что будет «значением».
- Редуктор получит эти пары (ключ, значение).Функция редуктора - «wc».Как бы «wc» узнал, действовать ли «ключ» или «ценность» этого кортежа.
Я понимаю, что это очень простые вопросы, но я снова и снова застреваю, чтобы получитьправильный ответ.Буду благодарен за помощь.
Спасибо.