DataX 从HDFS文件系统上读取数据到FTP文件服务器 【举例介绍】

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: DataX 从HDFS文件系统上读取数据到FTP文件服务器 【举例介绍】

官文档地址:github.com/alibaba/Dat… 


64.PNG65.PNG66.PNG


从hdfs上Reader  ---》  Writer 到FTP文件服务器


闲话不多说;直接演示;


{   "setting": {},

   "job": {

       "setting": {

           "speed": {

               "channel": 10

           }

       },

       "content": [

           {

               "reader": {

                   "name": "hdfsreader",

                   "parameter": {

                       "defaultFS": "hdfs://10.240.4.5:8000",

                  "path": "/wonders/123456",

                       "column": [

                            "*"

                       ],

                       "fileType": "text",

                       "encoding": "UTF-8",

                       "fieldDelimiter": ","

                   }

               },

              "writer": {

                   "name": "ftpwriter",

                   "parameter": {

                       "protocol": "ftp",

                       "host": "10.241.2.1",

                       "port": 21,

                       "username": "admin",

                       "password": "root",

                       "timeout": "60000",

                       "path": "/usr/local/ftp/ftpuser/uploadTest/",

                       "fileName": "test1",

                       "writeMode": "append",

                       "fieldDelimiter": ",",

                       "encoding": "UTF-8",

                       "nullFormat": "null",

                       "dateFormat": "yyyy-MM-dd",

                       "fileFormat": "text"

                   }

               }

           }

       ]

   }

}


重要参数说明(各个配置项值前后不允许有空格)

channel:参数该为若你读取是具体某个文件夹下的所有文件,channel为你指定默认顺序从头读取文件个数;


一、从HDFS文件系统 reader 数据【参数说明】

1、defaultFS【必选,默认值:无】:Hadoop hdfs文件系统namenode节点地址 ;【通常就是你hdfs安装ip地址加端口号;端口号是你安装时候给的端口号,而不是页面访问hdfs的端口号】


2、path 【必选,默认值:无】:要读取的文件路径 ;详情见DataX官文;【就是你想读取的在hdfs上存储的文件路径,比如我这里】、如下图;

67.jpg


3、column【必选,默认值:读取字段列表,type指定源数据的类型】:读取字段列表,type指定源数据的类型;index指定当前列来自于文本第几列(以0开始),value指定当前类型为常量,不从源头文件读取数据,而是根据value值自动生成对应的列。默认情况下,用户可以全部按照String类型读取数据,配置如下: "column": ["*"]    用户可以指定Column字段信息,配置如下:

"column": [
                               {
                                "index": 0,
                                "type": "long"
                               },
                               {
                                "index": 1,
                                "type": "boolean"
                               },
                               {
                                "type": "string",
                                "value": "hello"
                               },
                               {
                                "index": 2,
                                "type": "double"
                               }
                        ],


【通常是默认全部读取;"*"  】


4、fileType【必选,无默认值】 :描述:文件的类型,目前只支持用户配置为"text"、"orc"、"rc"、"seq"、"csv"

text表示textfile文件格式

orc表示orcfile文件格式

rc表示rcfile文件格式

seq表示sequence file文件格式

csv表示普通hdfs文件格式(逻辑二维表)

特别需要注意的是,HdfsReader能够自动识别文件是orcfile、textfile或者还是其它类型的文件,但该项是必填项,HdfsReader则会只读取用户配置的类型的文件,忽略路径下其他格式的文件

另外需要注意的是,由于textfile和orcfile是两种完全不同的文件格式,所以HdfsReader对这两种文件的解析方式也存在差异,这种差异导致hive支持的复杂复合类型(比如map,array,struct,union)在转换为DataX支持的String类型时,转换的结果格式略有差异,比如以map类型为例:

orcfile map类型经hdfsreader解析转换成datax支持的string类型后,结果为"{job=80, team=60, person=70}"

textfile map类型经hdfsreader解析转换成datax支持的string类型后,结果为"job:80,team:60,person:70"

从上面的转换结果可以看出,数据本身没有变化,但是表示的格式略有差异,所以如果用户配置的文件路径中要同步的字段在Hive中是复合类型的话,建议配置统一的文件格式。

如果需要统一复合类型解析出来的格式,我们建议用户在hive客户端将textfile格式的表导成orcfile格式的表

5、encoding 【不必选,默认值:utf-8】 :读取文件的编码配置;


6、fieldDelimiter 【不必选,默认值:,】 :读取的字段分隔符;

二、数据Writer到HDFS文件系统【参数说明】

1、protocol【必选,默认值:无】:ftp服务器协议,目前支持传输协议有ftp和sftp


2、host【必选,默认值:无】:ftp服务器地址


3、port【不必选,默认值:若传输协议是sftp协议,默认值是22;若传输协议是标准ftp协议,默认值是21】:ftp服务器端口


4、username【必选,默认值:无】:登录ftp服务器访问用户名


5、password【必选,默认值:无】:登录ftp服务器访问密码


6、path 【不必选,默认值:无】 :FTP文件系统的路径信息;为ftp存储文件的绝对地址


7、timeout 【不必选,默认值:60000(1分钟)】:连接ftp服务器连接超时时间,单位毫秒


8、fileName【必选,默认值:无】:FtpWriter写入的文件名,该文件名会添加随机的后缀作为每个线程写入实际文件


9、writeMode【必选,默认值:无 】:FtpWriter写入前数据清理处理模式;如下三种处理模式

  • truncate,写入前清理目录下一fileName前缀的所有文件。
  • append,写入前不做任何处理,DataX FtpWriter直接使用filename写入,并保证文件名不冲突。
  • nonConflict,如果目录下有fileName前缀的文件,直接报错。


10、fieldDelimiter【不必选,默认值:,】:读取的字段分隔符


11、encoding【不必选,默认值:无压缩】:文本压缩类型,暂时不支持


12、nullFormat【不必选,默认值:\N 】:文本文件中无法使用标准字符串定义null(空指针),DataX提供nullFormat定义哪些字符串可以表示为null。


13、dateFormat【不必选,默认值:无】:日期类型的数据序列化到文件中时的格式,例如 "dateFormat": "yyyy-MM-dd"


14、fileFormat【不必选,默认值:text】:文件写出的格式,包括csv  和text两种,csv是严格的csv格式,如果待写数据包括列分隔符,则会按照csv的转义语法转义,转义符号为双引号";text格式是用列分隔符简单分割待写数据,对于待写数据包括列分隔符情况下不做转义。


15、header 【不必选,默认值:无】:txt写出时的表头,示例['id', 'name', 'age'];

------------------------------------------------------------------------------------------------------------------------------------------

其他的reader writer 依照官文档,都是可以实现的;

以上是我由于本身需要,才去做了研究,若有存在不足的地方,请多多指出,一起进步;

附上我从ftp读取某个文件内容到本地txt;



{

   "setting": {},

   "job": {

       "setting": {

           "speed": {

               "channel": 2

           }

       },

       "content": [

           {

               "reader": {

                   "name": "ftpreader",

                   "parameter": {

                       "protocol": "ftp",

                       "host": "10.241.2.1",

                       "port": 21,

                       "username": "admin",

                       "password": "root",

                       "path": "/usr/local/ftp/ftpuser/uploadTest/test__98f280f0_57fa_4b08_9701_3b848ce7d204.txt"

                       "column": [

                          "*"

                       ],

                       "encoding": "UTF-8",

                       "fieldDelimiter": ","

                   }

               },

               "writer": {

                   "name": "txtfilewriter",

                   "parameter": {

                       "path": "C:/Users/luoyo/Desktop/工具夹/txt",

                       "fileName": "luohw",

                       "writeMode": "append",

                       "dateFormat": "yyyy-MM-dd"

                   }

               }

           }

       ]

   }

}

目录
相关文章
|
1天前
|
存储 运维 算法
服务器数据恢复—raid6阵列硬盘重组raid5阵列如何恢复raid6阵列数据?
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统+EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分硬盘重新组建RAID并进行了初始化。 初始化开始一段时间后,运维人员察觉到情况有异后强制终止初始化,这个时候初始化已经完成一半以上。数据部分已被不可逆的破坏。
|
2月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
3月前
|
存储 弹性计算 缓存
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
阿里云服务器ECS提供了多种通用型实例规格族,每种规格族都针对不同的计算需求、存储性能、网络吞吐量和安全特性进行了优化。以下是对存储增强通用型实例规格族g8ise、通用型实例规格族g8a、通用型实例规格族g8y、存储增强通用型实例规格族g7se、通用型实例规格族g7等所有通用型实例规格族的详细解析,包括它们的核心特点、适用场景、实例规格及具体指标数据,以供参考。
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
31 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
2月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
46 4
|
2月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
159 5
|
3月前
|
存储 弹性计算 安全
阿里云服务器ECS计算型实例规格族特点、适用场景、指标数据参考
阿里云服务器ECS提供了丰富的计算型实例规格族,专为满足不同场景下的高性能计算需求而设计。包括计算型实例规格族c8y、计算型实例规格族c7、计算型实例规格族c8i等热门计算型实例规格,以及网络增强型的c7nex、密集计算型的ic5等其他计算型实例规格,每一种规格族都经过精心优化,确保在计算性能、存储效率、网络吞吐和安全特性等方面达到最佳平衡。本文将详细解析阿里云服务器ECS中的多个计算型实例规格族,包括它们的核心特点、适用场景、实例规格及具体指标数据,为用户在云计算资源选型时提供全面参考。
阿里云服务器ECS计算型实例规格族特点、适用场景、指标数据参考
|
2月前
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
58 3
|
2月前
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
2月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
104 4
下一篇
无影云桌面