在本教程中,您将学习如何生成随机数据并将它们写入HDFS中;还将学习从HDFS中读取数据,并对它们进行排序,最后在控制台中输出排序结果。
本教程使用Talend Data Fabric Studio v6和Hadoop集群:Cloudera CDH v5.4。
1 创建一个新的标准作业
1)选择集成透视图。
2)展开Hadoop集群,确保您已在项目存储库中创建了Hadoop集群连接和HDFS连接元数据。
3)在Repository中,展开JobDesigns,右键点击Standard,然后单击CreateStandardJob。在新建作业的向导窗口中,将“名称”字段重命名为ReadWriteHDFS。在“用途”字段的HDFS中输入读取/写入数据,在“描述”字段中,输入标准作业以在HDFS中写入和读取客户数据,然后单击完成。然后在作业设计器中打开作业。
4)添加并配置tRowGenerator组件。
5)生成随机客户数据:在作业设计器中添加tRowGenerator。
6)双击tRowGenerator_1,为tRowGenerator组件设置架构和函数参数。
7)将列添加到模式中:单击三次[+]图标,并输入列的名称CustomerID、FirstName和LastName。
8)给7)中的字段配置属性:单击Type字段更改CustomerID列的Type。单击Integer,将三列的Functions字段分别设置为random(int,int)、TalendDataGenerator.getFirstName()和TalendDataGenerator.getLastName()。
9)在表中,选择CustomerID列,然后在Functionsparameters选项卡中,将最大值设置为1000。
10)在RowGenerator的行字段中,输入1000,然后点击确定保存配置。
2 将数据写入HDFS
这一步中,您需要新建一个tHDFSOutput组件,该组件将复用项目存储库中现有的HDFS元数据。
1)从存储库中,在Metadata>HadoopCluster>MyHadoopCluster>HDFS下,单击MyHadoopCluster_HDFS并将其拖动到作业设计器。
2)在组件列表中,选择tHDFSOutput并点击确定。
3)通过将两个组件与Main行进行链接,创建从tRowGenerator_1组件到MyHadoopCluster_HDFS组件的数据流,然后双击MyHadoopCluster_HDFS组件打开Component视图。
注意,该组件已经配置了预定义的HDFS元数据连接信息。
4)在文件名框中,输入相对应的路径信息(本教程中为“/user/student/CustomersData”),然后在操作列表中,选择覆盖(Overwrite)。
将数据写入HDFS的第一个子作业现已完成。它会获取之前创建的tRowGenerator中生成的数据,并使用使用元数据定义的连接将其写入HDFS。
3 从HDFS读取数据
接下来,您需要新建一个子作业来读取HDFS上的客户数据,并对其进行排序,最后在控制台中进行输出。
首先,您需要新建tHDFSInput组件,该组件复用了ProjectRepository中现有的HDFS元数据。
1)在元数据>HadoopCluster>MyHadoopCluster>HDFS下,点击MyHadoopCluster_HDFS并将其放置在作业设计器。
2)在组件列表中,选择tHDFSInput并单击确定。
3)双击MyHadoopCluster_HDFS输入组件,打开MyHadoopCluster_HDFS输入组件的组件视图。
注意,该组件已经配置了预定义的HDFS元数据连接信息。
4)在文件名框中,输入相对应的路径信息(本教程中为“/user/student/CustomersData”)。
4 指定MyHadoopCluster_HDFS输入组件的模式
1)打开架构编辑器:在MyHadoopCluster_HDFS输入组件的组件视图中,单击编辑模式。
2)将列添加到模式中:点击三次[+],并输入列名称CustomerID、FirstName和LastName。
3)更改CustomerID列的类型:单击“类型”字段并点击整数。
注意:此模式与tRowGenerator和tHDFSOutput中的模式相同。您可以从这些组件中的任意一个进行复制并粘贴到此模式中。
4)用OnSubjobOk触发器连接tRowGenerator组件和MyHadoopCluster_HDFS输入组件。
5 对数据进行排序
1)添加一个tSortRow组件并使用Main将其连接到MyHadoopCluster_HDFS输入组件。
2)双击该组件打开tSortRow的组件视图。
3)单击同步列配置模式。
4)向Criteria表中添加新条件:点击[+]图标并在模式列中键入CustomerID。选择按“num”进行排序,并在Orderasc/desc中,选择asc,即按数字字符进行升序排序。
6 输出排序后的数据
1)添加一个tLogRow组件并使用Main将其连接到tSortRow组件。
2)双击tLogRow组件打开组件视图。
3)在“模式”面板中,选择“表格”。
现在可以运行您的作业了。
首先,它将生成数据并将写入HDFS。然后,它从HDFS读取数据,对其进行排序,并将其显示在控制台中。
7 运行作业,在控制台中查看结果
1)在运行视图中点击运行。
2)排序后的数据将显示在控制台中。