Talend - Hadoop分布式文件系统

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

设置和先决条件

之前我们使用HDFS进入Talend,我们应该了解为此目的应该满足的设置和先决条件.

这里我们在虚拟机上运行Cloudera quickstart 5.10 VM.此VM中必须使用仅限主机的网络.

仅限主机的网络IP:192.168.56.101

先决条件

你也必须在cloudera manager上运行相同的主机.

Cloudera Manager

现在在您的Windows系统上,转到c:\ Windows \ System32 \Drivers\etc\hosts和使用记事本编辑此文件,如下所示.

Windows系统

同样,在您的cloudera快速入门VM上,编辑您的/etc/hosts文件,如下所示.

sudo gedit/etc/hosts


Hosts

设置Hadoop连接

在存储库面板中,转到元数据.右键单击Hadoop Cluster并创建一个新群集.提供此Hadoop集群连接的名称,用途和描述.

单击"下一步".

Hadoop Connection

选择分发为cloudera并选择您正在使用的版本.选择检索配置选项,然后单击下一步.

Hadoop Configuration

输入管理员凭据(带端口,用户名,密码的URI)如下所示,然后单击"连接".如果细节正确,您将在已发现的群集下获得Cloudera QuickStart.

Manager Credentials

单击"获取".这将获取HDFS,YARN,HBASE,HIVE的所有连接和配置.

选择全部并单击完成.

Click Fetch

请注意,所有连接参数都将自动填充.在用户名中提及cloudera并单击Finish.

Connection Parameters

With这个,你已成功连接到Hadoop集群.

Hadoop Cluster

连接到HDFS

在这项工作中,我们将列出HDFS上存在的所有目录和文件.

首先,我们将创建一个作业然后添加HDFS组件.右键单击Job Design并创建一个新作业 -  hadoopjob.

现在从调色板添加2个组件 -  tHDFSConnection和tHDFSList.右键单击tHDFSConnection并使用'OnSubJobOk'触发器连接这两个组件.

现在,配置talend hdfs组件.

连接Hdfs

在tHDFSConnection中,选择Repository作为Property Type,然后选择您之前创建的Hadoop cloudera集群.它将自动填充此组件所需的所有必要详细信息.

Property Type

在tHDFSList中,选择"使用现有连接",然后在组件列表中选择您配置的tHDFSConnection.

在HDFS目录中提供HDFS的主路径选项并单击右侧的浏览按钮.

浏览按钮

如果你已经建立正确连接上述配置,您将看到如下所示的窗口.它将列出HDFS主页上的所有目录和文件.

Hdfs Browse

您可以通过检查cloudera上的HDFS来验证这一点.

正在检查Hdfs

从HDFS读取文件

在本节中,让我们了解如何从Talend中的HDFS读取文件.您可以为此目的创建一个新作业,但是在这里我们使用现有的作业.

拖放3个组件 - 从调色板到设计器窗口的tHDFSConnection,tHDFSInput和tLogRow.

右键单击tHDFSConnection并使用'OnSubJobOk'触发器连接tHDFSInput组件.

右键单击tHDFSInput并将主链接拖到tLogRow.

阅读文件

请注意,tHDFSConnection将具有与之前类似的配置.在tHDFSInput中,选择"使用现有连接",然后从组件列表中选择tHDFSConnection.

在文件名中,提供要读取的文件的HDFS路径.这里我们正在阅读一个简单的文本文件,因此我们的文件类型是文本文件.同样,根据您的输入,填写行分隔符,字段分隔符和标题详细信息,如下所述.最后,单击Edit schema按钮.

编辑架构按钮

自我们的文件只有纯文本,我们只添加一列String类型.现在,单击确定.

注意 : 当你的输入有多个不同类型的列时,你需要在这里相应地提到模式.

Multiple Columns

在tLogRow组件中,单击"在编辑架构中同步列".

选择要在其中打印输出的模式.

选择模式

最后,单击"运行"以执行作业.

成功阅读HDFS文件后,您可以看到以下输出.

成功阅读

将文件写入HDFS

让我们看看如何在Talend中从HDFS写入文件.拖放3个组件 - 从调色板到设计器窗口的tHDFSConnection,tFileInputDelimited和tHDFSOutput.

右键单击tHDFSConnection并使用'OnSubJobOk'触发器连接tFileInputDelimited组件.

右键单击tFileInputDelimited并将主链接拖到tHDFSOutput.

Main Link

请注意,tHDFSConnection将具有与之前类似的配置.

现在,在tFileInputDelimited中,在文件名/流选项中给出输入文件的路径.这里我们使用csv文件作为输入,因此字段分隔符为",".

根据输入文件选择页眉,页脚,限制.请注意,这里我们的标题是1,因为1行包含列名,限制是3,因为我们只向HDFS写入前3行.

现在,单击编辑模式.

选择标题

现在,根据我们的输入文件,定义模式.我们的输入文件有3列,如下所示.

输入文件

在tHDFSOutput组件中,单击同步列.然后,在使用现有连接中选择tHDFSConnection.另外,在文件名中,给出要写入文件的HDFS路径.

注意文件类型为文本文件,Action为"create",行分隔符为" \ n"和字段分隔符是";"

行分隔符

最后,单击"运行"以执行您的作业.一旦作业成功执行,检查你的文件是否在HDFS上.

执行成功

使用您在作业中提到的输出路径运行以下hdfs命令.

hdfs dfs -cat/input/talendwrite

如果你在HDFS上写成功,你会看到以下输出.

写成功