- Talend教程
- Talend - 首页
- Talend - 简介
- Talend - 系统需求
- Talend - 安装
- Talend Open Studio
- Talend - 数据集成
- Talend - 模型基础
- 数据集成组件
- Talend - 作业设计
- Talend - 元数据
- Talend - 上下文变量
- Talend - 作业管理
- Talend - 处理作业执行
- Talend - 大数据
- Hadoop分布式文件系统
- Talend - Map Reduce
- Talend - 使用Pig
- Talend - Hive
- Talend有用资源
- Talend - 快速指南
- Talend - 有用资源
- Talend - 讨论
Talend - Hadoop分布式文件系统
本章节,我们将详细学习Talend如何与Hadoop分布式文件系统协同工作。
设置和先决条件
在开始使用Talend操作HDFS之前,我们应该了解为此目的需要满足的设置和先决条件。
这里我们在虚拟机上运行Cloudera quickstart 5.10虚拟机。此虚拟机必须使用主机专用网络。
主机专用网络IP:192.168.56.101
您必须在Cloudera Manager上运行相同的主机。
现在在您的Windows系统上,转到c:\Windows\System32\Drivers\etc\hosts并使用记事本编辑此文件,如下所示。
同样,在您的Cloudera quickstart虚拟机上,编辑您的/etc/hosts文件,如下所示。
sudo gedit /etc/hosts
设置Hadoop连接
在资源库面板中,转到元数据。右键单击Hadoop集群并创建一个新的集群。为此Hadoop集群连接提供名称、用途和说明。
点击下一步。
选择分发版为Cloudera,并选择您正在使用的版本。选择检索配置选项,然后单击下一步。
输入管理器凭据(带端口的URI、用户名、密码),如下所示,然后单击连接。如果详细信息正确,您将在已发现的集群下获得Cloudera QuickStart。
点击获取。这将获取HDFS、YARN、HBASE、HIVE的所有连接和配置。
全选并点击完成。
请注意,所有连接参数都将自动填充。在用户名中提及cloudera,然后单击完成。
这样,您就成功连接到Hadoop集群。
连接到HDFS
在此作业中,我们将列出HDFS上存在的所有目录和文件。
首先,我们将创建一个作业,然后向其中添加HDFS组件。右键单击作业设计并创建一个新作业 – hadoopjob。
现在从调色板中添加2个组件 – tHDFSConnection和tHDFSList。右键单击tHDFSConnection,并使用“OnSubJobOk”触发器连接这两个组件。
现在,配置这两个Talend HDFS组件。
在tHDFSConnection中,选择资源库作为属性类型,并选择您之前创建的Hadoop Cloudera集群。它将自动填充此组件所需的所有必要详细信息。
在tHDFSList中,选择“使用现有连接”,并在组件列表中选择您配置的tHDFSConnection。
在HDFS目录选项中提供HDFS的主目录路径,并单击右侧的浏览按钮。
如果您已使用上述配置正确建立连接,您将看到如下所示的窗口。它将列出HDFS主目录上存在的所有目录和文件。
您可以通过检查Cloudera上的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中,在文件名/流选项中提供输入文件的路径。这里我们使用csv文件作为输入,因此字段分隔符为“,”。
根据您的输入文件选择标题、页脚和限制。请注意,这里我们的标题为1,因为第1行包含列名,限制为3,因为我们只将前3行写入HDFS。
现在,单击编辑模式。
现在,根据我们的输入文件,定义模式。我们的输入文件有3列,如下所示。
在tHDFSOutput组件中,单击同步列。然后,在“使用现有连接”中选择tHDFSConnection。此外,在文件名中,提供要写入文件的HDFS路径。
请注意,文件类型将为文本文件,操作将为“创建”,行分隔符将为“\n”,字段分隔符为“;”。
最后,单击运行以执行您的作业。作业成功执行后,检查您的文件是否在HDFS上。
使用您在作业中提到的输出路径运行以下hdfs命令。
hdfs dfs -cat /input/talendwrite
如果您成功写入HDFS,您将看到以下输出。