Talend - Map Reduce

在上一章中,我们了解了 Talend 如何处理大数据。在本章中,让我们了解如何将 map Reduce 与 Talend 结合使用。

创建 Talend MapReduce 作业

让我们学习如何在 Talend 上运行 MapReduce 作业。在这里,我们将运行 MapReduce 字数统计示例。

为此,右键单击作业设计并创建一个新作业 - MapreduceJob。提及作业的详细信息并单击"完成"。

Map Reduce 作业

向 MapReduce 作业添加组件

要向 MapReduce 作业添加组件,请将 Talend 的五个组件(tHDFSInput、tNormalize、tAggregateRow、tMap、tOutput)从托盘拖放到设计器窗口。右键单击 tHDFSInput 并创建到 tNormalize 的主链接。

右键单击 tNormalize 并创建到 tAggregateRow 的主链接。然后,右键单击 tAggregateRow 并创建到 tMap 的主链接。现在,右键单击 tMap 并创建到 tHDFSOutput 的主链接。

添加组件 Map Reduce

配置组件和转换

在 tHDFSInput 中,选择发行版 cloudera 及其版本。请注意,Namenode URI 应为"hdfs://quickstart.cloudera:8020",用户名应为"cloudera"。在文件名选项中,将输入文件的路径提供给 MapReduce 作业。确保此输入文件存在于 HDFS 上。

现在,根据您的输入文件选择文件类型、行分隔符、文件分隔符和标题。

Transformations

单击编辑模式并将字段"line"添加为字符串类型。

String Type

在 tNomalize 中,要规范化的列将是行,项目分隔符将是空格 -> " "。现在,单击编辑模式。 tNormalize 将具有行列,而 tAggregateRow 将具有 2 列单词和单词计数,如下所示。

Normalize Aggregate Row

在 tAggregateRow 中,将单词作为 Group by 选项中的输出列。在操作中,将单词计数作为输出列,将函数作为计数,将输入列位置作为行。

Word Count

现在双击 tMap 组件进入映射编辑器并将输入与所需输出进行映射。在此示例中,单词与单词进行映射,单词计数与单词计数进行映射。在表达式列中,单击 […] 进入表达式生成器。

现在,从类别列表和 UPCASE 函数中选择 StringHandling。将表达式编辑为"StringHandling.UPCASE(row3.word)",然后单击"确定"。将 row3.wordcount 保留在与 wordcount 对应的表达式列中,如下所示。

String Handling

在 tHDFSOutput 中,连接到我们从属性类型作为存储库创建的 Hadoop 集群。观察字段将自动填充。在文件名中,提供要存储输出的输出路径。保留如下所示的操作、行分隔符和字段分隔符。

字段分隔符

执行 MapReduce 作业

配置成功完成后,单击"运行"并执行 MapReduce 作业。

配置成功

转到 HDFS 路径并检查输出。请注意,所有单词都将以大写形式显示,并显示其字数。

HDFS 路径