Talend教程

Talend 分布式文件系统

在本章中,让我们详细了解 Talend 如何与 Hadoop 分布式文件系统配合使用。

设置和先决条件

在我们使用 HDFS 进入 Talend 之前,我们应该了解为此目的应满足的设置和先决条件。
这里我们在虚拟机上运行 Cloudera quickstart 5.10 VM。此 VM 中必须使用 Host-Only 网络。
仅主机网络 IP:192.168.56.101
Pre Requisites
您还必须在 cloudera manager 上运行相同的主机。
Cloudera Manager
现在在您的 Windows 系统上,转到 c:\Windows\System32\Drivers\etc\hosts 并使用记事本编辑此文件,如下所示。
Windows 系统
同样,在您的 cloudera 快速入门虚拟机上,编辑您的/etc/hosts 文件,如下所示。
sudo gedit /etc/hosts
Hosts

设置 Hadoop 连接

在存储库面板中,转到元数据。右键单击 Hadoop 集群并创建一个新集群。提供此 Hadoop 集群连接的名称、用途和描述。
点击下一步。
Hadoop 连接
选择发行版为 cloudera 并选择您正在使用的版本。选择检索配置选项,然后单击下一步。
Hadoop 配置
输入管理员凭据(带有端口、用户名、密码的 URI),如下所示,然后单击连接。如果详细信息正确,您将在发现的集群下获得 Cloudera QuickStart。
经理凭据
点击获取。这将获取 HDFS、YARN、HBASE、HIVE 的所有连接和配置。
全选并点击完成。
点击获取
请注意,所有连接参数都将自动填充。在用户名中提及 cloudera,然后单击完成。
连接参数
这样,您已成功连接到 Hadoop 集群。
Hadoop 集群

连接到 HDFS

在此作业中,我们将列出 HDFS 上存在的所有目录和文件。
首先,我们将创建一个作业,然后向其中添加 HDFS 组件。右键单击 Job Design 并创建一个新作业 – hadoopjob。
现在从面板中添加 2 个组件——tHDFSConnection 和 tHDFSList。右键单击 tHDFSConnection 并使用"OnSubJobOk"触发器连接这两个组件。
现在,配置两个 talend hdfs 组件。
连接 Hdfs
在 tHDFSConnection 中,选择 Repository 作为 Property Type,然后选择您之前创建的 Hadoop cloudera 集群。它将自动填充此组件所需的所有必要详细信息。
属性类型
在 tHDFSList 中,选择"使用现有连接",然后在组件列表中选择您配置的 tHDFSConnection。
在 HDFS Directory 选项中给出 HDFS 的 home 路径,然后点击右侧的浏览按钮。
浏览按钮
如果您通过上述配置正确建立了连接,您将看到如下所示的窗口。它将列出 HDFS 主目录中存在的所有目录和文件。
Hdfs 浏览
您可以通过在 cloudera 上检查您的 HDFS 来验证这一点。
检查 Hdfs

从 HDFS 读取文件

在本节中,让我们了解如何在 Talend 中从 HDFS 读取文件。您可以为此创建一个新作业,但这里我们使用的是现有作业。
将 3 个组件-tHDFSConnection、tHDFSInput 和 tLogRow 从调色板拖放到设计器窗口。
右键单击 tHDFSConnection 并使用"OnSubJobOk"触发器连接 tHDFSInput 组件。
右键单击 tHDFSInput 并将主链接拖到 tLogRow。
读取文件
请注意,tHDFSConnection 将具有与之前类似的配置。在 tHDFSInput 中,选择"使用现有连接",然后从组件列表中选择 tHDFSConnection。
在文件名中,提供您要读取的文件的 HDFS 路径。这里我们正在读取一个简单的文本文件,所以我们的文件类型是文本文件。同样,根据您的输入,填写如下所述的行分隔符、字段分隔符和标题详细信息。最后,单击"编辑架构"按钮。
编辑架构按钮
由于我们的文件只有纯文本,我们只添加了一列字符串类型。现在,点击确定。
注意-当您的输入有多个不同类型的列时,您需要在此处相应地提及架构。
多列
在 tLogRow 组件中,单击编辑架构中的同步列。
选择您希望输出的打印模式。
选择模式
最后,单击运行以执行作业。
成功读取 HDFS 文件后,您可以看到以下输出。
成功阅读

将文件写入 HDFS

让我们看看如何在 Talend 中从 HDFS 写入文件。将 3 个组件-tHDFSConnection、tFileInputDelimited 和 tHDFSOutput 从调色板拖放到设计器窗口。
右键单击 tHDFSConnection 并使用"OnSubJobOk"触发器连接 tFileInputDelimited 组件。
右键单击 tFileInputDelimited 并将主链接拖到 tHDFSOutput。
主链接
请注意,tHDFSConnection 将具有与之前类似的配置。
现在,在 tFileInputDelimited 中,在 File name/Stream 选项中给出输入文件的路径。这里我们使用 csv 文件作为输入,因此字段分隔符是","。
根据您的输入文件选择页眉、页脚、限制。请注意,这里的标题为 1,因为第 1 行包含列名,而限制为 3,因为我们仅将前 3 行写入 HDFS。
现在,点击编辑架构。
选择标题
现在,根据我们的输入文件,定义架构。我们的输入文件有 3 列,如下所述。
输入文件
在 tHDFSOutput 组件中,单击同步列。然后,在使用现有连接中选择 tHDFSConnection。此外,在文件名中,提供您要写入文件的 HDFS 路径。
注意文件类型为文本文件,操作为"创建",行分隔符为"\n",字段分隔符为";"
行分隔符
最后,单击运行以执行您的作业。作业成功执行后,检查您的文件是否在 HDFS 上。
执行成功
使用您在作业中提到的输出路径运行以下 hdfs 命令。
hdfs dfs-cat /input/talendwrite
如果您在 HDFS 上成功写入,您将看到以下输出。
写入成功
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4