使用Kettle从本地上传文件到远程HDFS

在前面的文章中,我们描述了使用Kettle工具可以在实现关系型数据库之间的数据ETL,如Oracle->Trafodion,MySQL->Trafodion等,本文通过范例介绍如何使用Kettle将本地的文件上传至HDFS目录。

关于如何在Kettle中配置连接HDFS(以连接CDH为例),详情可参考Kettle官网之https://help.pentaho.com/Documentation/7.1/0H0/Set_Up_Pentaho_to_Connect_to_a_Cloudera_Cluster

本文在此通过一系列简单的步骤描述通过Kettle配置远程HDFS连接并实现简易版本的文件上传功能,若读者有需要,可根据实际需要在此基础上进行扩展。

1 Kettle新建作业(文件->新建->作业)并保存命名为copy_hdfs

2 从作业中新建Hadoop clusters(Hadoop clusters->New Cluster),并填写相应的内容,如下图
这里写图片描述

3 测试HDFS连接
这里写图片描述
注:以上截图测试Hadoop连接有部分失败,但由于本示例只涉及简单的文件上传功能,因此只要保证对应的配置(HDFS配置、Zookeeper配置)正确即可。

4 在作业中添加对应组件(Big Data->Hadoop Copy Files)
这里写图片描述

5 双击Hadoop Copy Files组件并配置源文件/目录及目标文件/目录
这里写图片描述

6 运行作业并检查文件是否上传成功
这里写图片描述

这里写图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kettle中删除HDFS文件可以通过使用Hadoop File Input和Hadoop File Output步骤来实现。具体步骤如下: 1. 添加Hadoop File Input步骤,配置HDFS连接信息和要删除的文件路径。 2. 添加一个过滤器步骤,将要删除的文件名添加到过滤器中。 3. 添加Hadoop File Output步骤,将过滤后的文件输出到一个新的目录中,从而达到删除文件的目的。 以下是一个删除HDFS文件Kettle作业的范例: ```kettle <?xml version="1.0" encoding="UTF-8"?> <job> <name>Delete HDFS File</name> <description/> <extended_description/> <job_version>1.0</job_version> <job_status>0</job_status> <entry> <name>Hadoop File Input</name> <description/> <type>HadoopFileInput</type> <filename>${Internal.Transformation.Filename.Directory}/input.ktr</filename> <args> <arg> <name>source_configuration_name</name> <value>hdfs</value> <type>5</type> </arg> <arg> <name>source_file_folder</name> <value>/path/to/files</value> <type>1</type> </arg> <arg> <name>source_wildcard</name> <value>*</value> <type>1</type> </arg> <arg> <name>source_file_type</name> <value>0</value> <type>5</type> </arg> <arg> <name>source_include_subfolders</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_field</name> <value>filename</value> <type>1</type> </arg> <arg> <name>source_output_field_name</name> <value>filename</value> <type>1</type> </arg> <arg> <name>source_output_type</name> <value>0</value> <type>5</type> </arg> <arg> <name>source_output_format</name> <value>yyyy/MM/dd HH:mm:ss.SSS</value> <type>1</type> </arg> <arg> <name>source_output_length</name> <value>-1</value> <type>4</type> </arg> <arg> <name>source_output_precision</name> <value>-1</value> <type>4</type> </arg> <arg> <name>source_output_currency</name> <value>USD</value> <type>1</type> </arg> <arg> <name>source_output_decimal</name> <value>.</value> <type>1</type> </arg> <arg> <name>source_output_group</name> <value>,</value> <type>1</type> </arg> <arg> <name>source_output_null</name> <value>\\N</value> <type>1</type> </arg> <arg> <name>source_output_ifnull</name> <value>\\N</value> <type>1</type> </arg> <arg> <name>source_output_trim_type</name> <value>none</value> <type>1</type> </arg> <arg> <name>source_output_repeating</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_repeating_group_size</name> <value>0</value> <type>4</type> </arg> <arg> <name>source_output_include_filename</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_include_rownum</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_include_filename_field</name> <value>filename</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_field</name> <value>rownum</value> <type>1</type> </arg> <arg> <name>source_output_include_filename_encl</name> <value>"</value> <type>1</type> </arg> <arg> <name>source_output_include_filename_delim</name> <value>,</value> <type>1</type> </arg> <arg> <name>source_output_include_filename_escape</name> <value>\\</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_by_group</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_include_rownum_fieldname</name> <value>rownum</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_fieldtype</name> <value>Number</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_length</name> <value>-1</value> <type>4</type> </arg> <arg> <name>source_output_include_rownum_precision</name> <value>-1</value> <type>4</type> </arg> <arg> <name>source_output_include_rownum_currency</name> <value>USD</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_decimal</name> <value>.</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_group</name> <value>,</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_null</name> <value>\\N</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_ifnull</name> <value>\\N</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_trim_type</name> <value>none</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_repeating</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_include_rownum_repeating_group_size</name> <value>0</value> <type>4</type> </arg> <arg> <name>source_output_include_rownum_encl</name> <value>"</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_delim</name> <value>,</value> <type>1</type> </arg> <arg> <name>source_output_include_rownum_escape</name> <value>\\</value> <type>1</type> </arg> <arg> <name>source_output_header</name> <value>Y</value> <type>5</type> </arg> <arg> <name>source_output_footer</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_format</name> <value>unix</value> <type>1</type> </arg> <arg> <name>source_output_enclosure</name> <value>"</value> <type>1</type> </arg> <arg> <name>source_output_delimiter</name> <value>,</value> <type>1</type> </arg> <arg> <name>source_output_escape_character</name> <value>\\</value> <type>1</type> </arg> <arg> <name>source_output_row_separator</name> <value>\n</value> <type>1</type> </arg> <arg> <name>source_output_null_string</name> <value>\\N</value> <type>1</type> </arg> <arg> <name>source_output_file_extension</name> <value>txt</value> <type>1</type> </arg> <arg> <name>source_output_servlet_output</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_if_file_exists</name> <value>do_nothing</value> <type>1</type> </arg> <arg> <name>source_output_if_file_does_not_exist</name> <value>create_file</value> <type>1</type> </arg> <arg> <name>source_output_if_file_is_empty</name> <value>do_nothing</value> <type>1</type> </arg> <arg> <name>source_output_if_file_size_is_zero</name> <value>do_nothing</value> <type>1</type> </arg> <arg> <name>source_output_specify_date_format</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_date_format</name> <value>yyyy/MM/dd HH:mm:ss.SSS</value> <type>1</type> </arg> <arg> <name>source_output_add_to_result_filenames</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_append</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_split_every</name> <value>0</value> <type>4</type> </arg> <arg> <name>source_output_haspartno</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_add_date</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_add_time</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_specify_format</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_date_time_format</name> <value>yyyyMMdd</value> <type>1</type> </arg> <arg> <name>source_output_add_to_result_filesname</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_pad</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_fast_dump</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_split_by_part_size</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_part_size</name> <value>1000000</value> <type>4</type> </arg> <arg> <name>source_output_encoding</name> <value>UTF-8</value> <type>1</type> </arg> <arg> <name>source_output_compress</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_append_separator</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_enable_encoding</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_enclosure_forced</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_enclosure_fix_disabled</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_enclosure_fix_null</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_enclosure_fix_value</name> <value>"</value> <type>1</type> </arg> <arg> <name>source_output_header_enabled</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_footer_enabled</name> <value>N</value> <type>5</type> </arg> <arg> <name>source_output_format_row_number</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值