📅  最后修改于: 2020-11-29 08:51:57             🧑  作者: Mango
在上一章中,我们已经了解了Talend如何与大数据一起使用。在本章中,让我们了解如何使用map Reduce with Talend。
让我们学习如何在Talend上运行MapReduce作业。在这里,我们将运行一个MapReduce单词计数示例。
为此,右键单击“作业设计”并创建一个新作业– MapreduceJob。提及作业的详细信息,然后单击“完成”。
要将组件添加到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上。
现在,根据输入文件选择文件类型,行分隔符,文件分隔符和标题。
单击编辑架构,然后将“行”字段添加为字符串类型。
在tNomalize中,要规范化的列为line,项目分隔符为空白->“”。现在,单击编辑架构。 tNormalize将具有行列,而tAggregateRow将具有2列word和wordcount,如下所示。
在tAggregateRow中,将单词作为输出列放在“分组依据”选项中。在操作中,把单词计数作为输出列,函数数和线路输入列位置。
现在,双击tMap组件以进入地图编辑器,并将输入与所需的输出映射。在此示例中,单词与单词映射,单词计数与单词计数映射。在表达式列中,单击[…]进入表达式构建器。
现在,从类别列表和UPCASE函数选择StringHandling。将表达式编辑为“ StringHandling.UPCASE(row3.word)”,然后单击“确定”。将row3.wordcount保留在与wordcount对应的表达式列中,如下所示。
在tHDFSOutput中,连接到从属性类型作为存储库创建的Hadoop集群。观察到字段将自动填充。在“文件名”中,提供要在其中存储输出的输出路径。保持动作,行分隔符和字段分隔符如下所示。
配置成功完成后,单击运行并执行MapReduce作业。
转到您的HDFS路径并检查输出。请注意,所有单词的单词数均为大写。