В предыдущей главе мы увидели, как Talend работает с большими данными. В этой главе давайте разберемся, как использовать карту Reduce with Talend.
Создание задания Talend MapReduce
Давайте узнаем, как запустить задание MapReduce в Talend. Здесь мы запустим пример подсчета слов в MapReduce.
Для этого щелкните правой кнопкой мыши Job Design и создайте новую работу — MapreduceJob. Упомяните детали работы и нажмите Готово.
Добавление компонентов в MapReduce Job
Чтобы добавить компоненты в задание MapReduce, перетащите пять компонентов Talend — tHDFSInput, tNormalize, tAggregateRow, tMap, tOutput из окна поддона в конструктор. Щелкните правой кнопкой мыши tHDFSInput и создайте основную ссылку для tNormalize.
Щелкните правой кнопкой мыши tNormalize и создайте основную ссылку на tAggregateRow. Затем щелкните правой кнопкой мыши tAggregateRow и создайте основную ссылку на tMap. Теперь щелкните правой кнопкой мыши на tMap и создайте основную ссылку на tHDFSOutput.
Конфигурирование компонентов и преобразований
В tHDFSInput выберите дистрибутив cloudera и его версию. Обратите внимание, что Namenode URI должен быть «hdfs: //quickstart.cloudera: 8020», а имя пользователя должно быть «cloudera». В опции имени файла укажите путь вашего входного файла к заданию MapReduce. Убедитесь, что этот входной файл присутствует в HDFS.
Теперь выберите тип файла, разделитель строк, разделитель файлов и заголовок в соответствии с вашим входным файлом.
Нажмите на редактировать схему и добавьте поле «line» как строковый тип.
В tNomalize нормализуемым столбцом будет строка, а разделителем элементов будет пробел -> ««. Теперь нажмите «Изменить схему». У tNormalize будет строчный столбец, а у tAggregateRow будет 2 столбца word и wordcount, как показано ниже.
В tAggregateRow поместите слово в качестве выходного столбца в Group by option. В операциях укажите wordcount в качестве выходного столбца, функцию в качестве счетчика и позицию столбца ввода в качестве строки.
Теперь дважды щелкните компонент tMap, чтобы войти в редактор карт и сопоставить ввод с требуемым выводом. В этом примере слово отображается с word, а wordcount отображается с wordcount. В столбце выражений нажмите […], чтобы войти в построитель выражений.
Теперь выберите StringHandling из списка категорий и функцию UPCASE. Измените выражение на «StringHandling.UPCASE (row3.word)» и нажмите «ОК». Сохраните row3.wordcount в столбце выражения, соответствующем wordcount, как показано ниже.
В tHDFSOutput подключитесь к кластеру Hadoop, который мы создали из типа свойства как хранилище. Обратите внимание, что поля будут заполнены автоматически. В поле Имя файла укажите выходной путь, в котором вы хотите сохранить выходные данные. Сохраните действие, разделитель строк и разделитель полей, как показано ниже.
Выполнение задания MapReduce
Как только ваша конфигурация будет успешно завершена, нажмите Run и выполните задание MapReduce.
Перейдите на путь HDFS и проверьте вывод. Обратите внимание, что все слова будут в верхнем регистре с их количеством слов.