DataX使用之基础案例

2023-05-16

DataX使用之基础案例


文章目录

  • DataX使用之基础案例
    • 0. 写在前面
    • 1. 从stream 流读取数据并打印到控制台
    • 2. 读取 MySQL 中的数据存放到 HDFS
      • 2.1 查看官方模板
        • 2.1.1 mysqlreader 参数解析:
        • 2.1.2 hdfswriter 参数解析:
      • 2.2 准备数据
      • 2.3 编写配置文件
      • 2.4 执行任务
      • 2.5 查看 HDFS
      • 2.6 关于 HA 的支持
      • 2.7 导入到Hive
    • 3. 读取 HDFS 数据写入 MySQL
      • 3. 1 将上个案例上传的文件改名
      • 3.2 查看官方模板
      • 3.3 创建配置文件
      • 3.4 在 MySQL 的 datax 数据库中创建 student2
      • 3.5 执行任务
      • 3.6 查看 student2 表


0. 写在前面

本文主要介绍DataX读取Stream流、MySQL、HDFS数据

1. 从stream 流读取数据并打印到控制台

  • 进入DataX的安装目录,执行以下命令,查看流读取的配置模板
[whybigdata@node01 datax]$ ./bin/datax.py -r streamreader -w streamwriter
[whybigdata@node01 bin]$ python datax.py -r streamreader -w streamwriter DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.

Please refer to the streamreader document: https://github.com/alibaba/DataX/blob/master/streamreader/doc/streamreader.md

Please refer to the streamwriter document: https://github.com/alibaba/DataX/blob/master/streamwriter/doc/streamwriter.md

Please save the following configuration as a json file and	use
python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json to run the job.

{
	"job": {
		"content": [
		{
			"reader": {
				"name": "streamreader", 
				"parameter": {
					"column": [], 
					"sliceRecordCount": ""
				}
			},
			"writer": {
				"name": "streamwriter", 
				"parameter": {
					"encoding": "", 
					"print": true
				}
			}
		}
		],
		"setting": {
			"speed": {
				"channel": ""
			}
		}
	}
}
  • 根据模板编写配置文件:进入DataX安装目录下的job目录
[whybigdata@node01 job]$ vim stream2stream.json

添加以下内容

{
	"job": {
		"content": [
		{
			"reader": {
				"name": "streamreader", 
				"parameter": {
					"column": [
						{
							"type": "long",
							"value": "18"
						},
						{
							"type": "string",
							"value": "zhangsan"
						}
					], 
					"sliceRecordCount": 10
				}
			},
			"writer": {
				"name": "streamwriter", 
				"parameter": {
					"encoding": "UTF-8", 
					"print": true
				}
			}
		}
		],
		"setting": {
			"speed": {
				"channel": 1
			}
		}
	}
}

column表示读取的数据字段,需要编写出每个字段的数据类型和相对应的值,数值类型的字段值也需要通过引号“”引起来,直接使用数字会报错。

  • 运行Job
[whybigdata@node01 job]$ /opt/module/datax/bin/datax.py /opt/module/datax/job/stream2stream.json
  • 运行结果

根据sliceRecordCount参数值,流输出到控制台有10条数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qnM1uhSS-1675910277751)(./1.jpg)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5xTD7c8N-1675910277753)(./2.jpg)]

2. 读取 MySQL 中的数据存放到 HDFS

2.1 查看官方模板

执行以下命令,查看MySQL读取以及hdfs写出的配置模板

[whybigdata@node01 datax]$ ./bin/datax.py -r mysqlreader -w hdfswriter

模板如下:

{
    "job": {
        "content": [
            {
                "reader": {
					"name": "mysqlreader", 
					"parameter": {
						"column": [], 
						"connection": [
							{
							"jdbcUrl": [],
							"table": []
							}
						],
						"password": "",
						"username": "",
						"where": ""
					}
				},
				"writer": {
					"name": "hdfswriter",
					"parameter": {
						"column": [],
						"compress": "",
						"defaultFS": "", 
						"fieldDelimiter": "",
						"fileName": "",
						"fileType": "",
						"path": "",
						"writeMode": ""
					}
				}
			}
        ],
        "setting": {
            "speed": {
				"channel": ""
            }
        }
    }
}

2.1.1 mysqlreader 参数解析:

"reader":{
	"name":"mysqlreader",
	"parameter":{
		"column":[],
		"connection":[
		  {
			"jdbcUrl":[],
			"table":[],
			【“querySql:[]}
		],
		"password:"",
		"usemname":"","where":""】
		【"splitPk":""}
}

参数解释如下:

  • name:reader名
  • column:需要同步的列名集合,使用JSON数组描述自带信息,*代表所有列
  • jdbcUrl:对数据库的DBC连接信息,使用JSON数组描述,支持多个连接地址
  • table:需要同步的表,支持多个
  • querySql:自定义SQL,配置它后,mysglreader直接忽略table、column、where
  • password:数据库用户名对应的密码
  • usemame:数据库用户名
  • where:筛选条件
  • splitPK:数据分片字段,一般是主键,仅支持整型

注意:【】中的参数为可选参数

2.1.2 hdfswriter 参数解析:

"writer":{
	"name":"hdfswriter",
	"parameter":{
		"column":[],
		"compress":""
		"defaultFS":"",
		"fieldDelimiter":"",
		"fileName":"",
		"fileType":"",
		"path":"",
		"writeMode":""
	}
}

参数解释如下:

  • name:writer名

  • column:写入数据的字段,其中name指定字段名,type指定类型

  • compress:hdfs文件压缩类型,默认不填写意味着没有压缩。

  • defaultFS:hdfs文件系统namenode节点地址,格式:hds/p:端口

  • fieldDelimiter:字段分隔符

  • fileName:写入文件名

  • fileType:文件的类型,目前只支持用户配置为 tet orc

  • path:存储到Hadoophdfs文件系统的路径信息

  • writeMode:hdfswriter写入前数据清理处理模式:

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

2.2 准备数据

  • 创建 student 表
 mysql> create database datax;
 mysql> use datax;     
 mysql> create table student(id int,name varchar(20));  
  • 插入数据
mysql> insert into student values(1001,'zhangsan'),(1002,'lisi'),(1003,'wangwu');

2.3 编写配置文件

[whybigdata@node01 datax]$ vim /opt/module/datax/job/mysql2hdfs.json
{
	"job": {
		"content": [
		{
			"reader": {
				"name": "mysqlreader", 
				"parameter": {
					"column": [
						"id", 
						"name"
					],
					"connection": [
					{
						"jdbcUrl": [
							"jdbc:mysql://node01:3306/datax"
						],
						"table": [
							"student"
						]
					}
					],
					"username": "root", 
					"password": "123456"
				}
			},
			"writer": {
				"name": "hdfswriter", 
				"parameter": {
					"column": [
						{
							"name": "id",
							"type": "int"
						},
						{
							"name": "name",
							"type": "string"
						}
					],
					"defaultFS": "hdfs://node01:9000", 
					"fieldDelimiter": "\t",
					"fileName": "student.txt", 
					"fileType": "text",
					"path": "/datax-out", 
					"writeMode": "append"
				}
			}
		}
		],
		"setting": {
			"speed": {
				"channel": "1"
			}
		}
	}
}

2.4 执行任务

  • 执行结果:失败总数为0,成功读出记录3条
[whybigdata@node01 datax]$ bin/datax.py job/mysql2hdfs.json
2023-01-10 15:54:16.581 [job-0] INFO	JobContainer -
任务启动时刻	: 2023-01-10 15:54:04
任务结束时刻	: 2023-01-10 15:54:16
任务总计耗时	: 12s
任务平均流量	: 3B/s
记录写入速度	: 0rec/s
读出记录总数	: 3
读写失败总数	: 0
  • 过程分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LmwLhAkQ-1675910277754)(./3.jpg)]

DataX保证数据一致性的原理:⭐⭐⭐⭐⭐

DataX读取MySQL表的数据写入到hdfs过程中,若是并发执行的操作,只有全部成功写入搭配hdfs就算最终成功(此过程中一开始会生成一个临时文件,全部成功之后才会修改临时文件名字、路径);如果有个别失败,那job就直接宣告失败,相对应的并发操作中其他成功的操作也会将对应的临时路径删除掉。

2.5 查看 HDFS

注意:HdfsWriter 实际执行时会在该文件名后添加随机的后缀作为每个线程写入实际文件名。

在这里插入图片描述

2.6 关于 HA 的支持

将以下参数写入到writer【parameter】中即可

"hadoopConfig":{ 
   "dfs.nameservices": "ns", 
   "dfs.ha.namenodes.ns": "nn1,nn2",
   "dfs.namenode.rpc-address.ns.nn1": "主机名:端口", 
   "dfs.namenode.rpc-address.ns.nn2": "主机名:端口",
  "dfs.client.failover.proxy.provider.ns":"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
}

2.7 导入到Hive

本质上也是通过HDFS来实现的

过程:导入到Hive —> hdfswriter配置文件 —> load data 进入Hive对应的表 | 直接写入到Hive表对应的路径

3. 读取 HDFS 数据写入 MySQL

3. 1 将上个案例上传的文件改名

[whybigdata@node01 datax]$ hadoop fs -mv /student.txt* /student.txt

3.2 查看官方模板

[whybigdata@node01 datax]$ python bin/datax.py -r hdfsreader -w mysqlwriter
{
	"job": {
		"content": [
		{
			"reader": {
				"name": "hdfsreader", 
				"parameter": {
					"column": [],
					"defaultFS": "",
					"encoding": "UTF-8",
					"fieldDelimiter": ",",
					"fileType": "orc",
					"path": ""
				}
			},
			"writer": {
				"name": "mysqlwriter", 
				"parameter": {
					"column": [], 
					"connection": [
						{
							"jdbcUrl": "",
							"table": []
						}
					],
					"passwoard": "",
					"preSql": [],
					"session": [],
					"username": "",
					"writeMode": ""
				}
			}
		}
		],
		"setting": {
			"speed": {
				"channel": ""
			}
		}
	}
}

3.3 创建配置文件

[whybigdata@node01 datax]$ vim job/hdfs2mysql.json
{
	"job": {
		"content": [
		{
			"reader": {
				"name": "hdfsreader", 
				"parameter": {
					"column": ["*"],
					"defaultFS": "hdfs://node01:9000", 
					"encoding": "UTF-8", 
					"fieldDelimiter": "\t",
					"fileType": "text", 
					"path": "/student.txt"
				}
			},
			"writer": {
				"name": "mysqlwriter", 
				"parameter": {
					"column": [
						"id", 
						"name"
					], 
					"connection": [
						{
							"jdbcUrl": "jdbc:mysql://node01:3306/datax", 
							"table": ["student2"]
						}
					],
					"password": "123456", 
					"username": "root", 
					"writeMode": "insert"
				}
			}
		}
		],
		"setting": {
			"speed": {
				"channel": "1"
			}
		}
	}
}

3.4 在 MySQL 的 datax 数据库中创建 student2

  • 建表
mysql> use datax; 
mysql> create table student2(id int,name varchar(20));         

3.5 执行任务

[whybigdata@node01 datax]$ bin/datax.py job/hdfs2mysql.json 
2023-01-10 16:21:53.616 [job-0] INFO  JobContainer -      
任务启动时刻          : 2023-01-10 16:21:41      
任务结束时刻          : 2023-01-10 16:21:53            
任务总计耗时          :  11s 
任务平均流量			  :  3B/s   
记录写入速度			  :  0rec/s   
读出记录总数		   	  :   3  
读写失败总数          :    0                

3.6 查看 student2 表

mysql> select * from student2;
+	+	+
| id	| name	|
+	+	+
| 1001 | zhangsan |
| 1002 | lisi	|
| 1003 | wangwu	|
+	+	+
3 rows in set (0.00 sec)

结束!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DataX使用之基础案例 的相关文章

  • 【DataX】数据同步到PG时遇到的分区不存在问题

    数据同步到PG时遇到的分区不存在问题 前言正文问题分析解决方法 结语 前言 大概说下这个问题牵扯出来的背景 xff0c 一个外场项目 xff0c 选型用PG存业务数据 xff0c 然后客户要求保存保留一年的数据 xff0c 运行到现在服务器
  • 使用datax-web把oracle数据库中的数据导入到mysql

    一 所需环境 Windows系统电脑 Python2 7 18 xff08 需要配置环境变量 xff09 oracle环境 mysql环境 jdk1 8 navicat git python安装下载 https www python org
  • 修改datax,Java获取mongo,Document转换成json,遇到的类型问题,用JsonWriterSettings解决

    java numberlong 解决方法 在修改datax插件的时候遇到了问题 问题 xff1a 我们存在mongo中带有数据类型 xff0c 如图 我们直接将Document转json会带上类型 且在mongo java driver的j
  • datax实现mysql数据同步到oracle

    一 mysql数据同步到oracle 注意 xff1a mysql不区分大小写 xff0c 但是oracle严格区分大小写 xff0c 并且oracle的库名 表名和字段名要用大写 xff0c 如果用的小写需要添加双引号说明 job set
  • 阿里 datax工具 impala 数据导入到mongo

    datax下载地址 1 解压datax包 2 具体安装测试datax工具可以在网上进行查询 其对jdk python maven 都有版本的要求 需确认当前系统中的版本 datax安装以及测试方式 3 确认安装无误后 xff0c 在安装目录
  • DataX使用、同步MySQL数据到HDFS案例

    文章目录 4 DataX使用4 1 DataX使用概述4 1 1 DataX任务提交命令4 1 2 DataX配置文件格式 4 2 同步MySQL数据到HDFS案例4 2 1 MySQLReader之TableMode4 2 1 1 编写配
  • datax 模板_DataX从Mysql到Mysql

    在某一个阳光明媚的上午 xff0c 万里无云 xff0c 天空一片蔚蓝 我的老大迈着矫健的步伐来到我的工位 xff0c 来 xff0c 过来 xff0c 帮我个忙 我意识到这可能是一个不简单的 交易 老大说 xff1a 我给你一个Navic
  • 【dataX推送数据之mysql到mysql】

    前言 大数据项目上的一个小功能实现 xff0c 需要将现有天数据表中的数据求和 xff0c 得到月数据表供页面展示 xff0c 干脆直接dataX推送数据实现 xff0c 读取mysql xff08 使用sql聚合查询计算 xff09 xf
  • DataX理论知识:简介-框架设计-数据抽取策略

    文章目录 一 简介 二 框架设计 三 数据抽取策略 一 简介 DataX 是一个 异构数据源 离线同步工具 可实现 各种 异构数据源 之间 稳定高效的数据同步功能 设计理念 从 蜘蛛网 到 星型链路 DataX充当一个中转站的角色 二 框架
  • DATAX快速上手非常详细

    前言 博主在工作的过程中有一天公司决定将数据迁移的新的项目上去 当我发现数据库中的表大于有4000多张表的时我顿时懵了下 这数据迁移人力物力消耗的也太大了吧 看DataX的设计 所以我们可以借助阿里云开源的DataX来解决这个问题 看完这篇
  • 基于SPI机制和DataX插件热加载破坏双亲委派的思考

    在开始阅读之前请先思考以下两个问题 并希望您能再接下来的文章中找到答案 1 如果我自己实现了一个新的java lang String类 并通过UrlClassLoader加载使用该类 能否覆盖JDK中的 java lang String 2
  • MySQL数据库实现本地数据库和远程服务器数据库数据同步

    项目中有两个数据库 本地数据库和远程服务器数据库 数据要在本地经过数据洗涤后才传上服务器数据库 之前用的Navicat工具 但是速度慢 且无法设置定时同步 后来改用Datax 它的效率真的非常高 DataX 是阿里巴巴集团内被广泛使用的离线
  • DataX-一款稳定高效的数据同步工具-从安装、启动、配置、使用总结,看这篇让你一步到位

    前言 大数据部门现阶段ETL按同步方式分为两种 实时同步 DTS CloudCanal 离线同步 dataworks DI节点 但CloudCanal在使用中出现了部分问题 归纳总结后主要为以下几点 部分使用场景获取不到binlog点位 停
  • Datax使用rdbmsreader支持clickhouse的读取

    参考链接 22条消息 使用datax的rdbmsreader实现读取clickhouse Sleten09的博客 CSDN博客 背景 想要把click house的数据源同步到HDFS 发现Datax没有clickhousereader组件
  • 【DATAX】datax读取hive分区表时,空分区任务报错问题解决

    问题场景 之前在 Dolphinscheduler调度Datax任务读取Hive分区表案例 博客中我分享了调度任务读取hive分区的几个场景 当时提到了分区中有空文件的解决方案 除此之外 我们还遇到了空分区的场景 即该分区没有数据 连所谓的
  • datax-web使用介绍

    datax web 路由策略 当执行器集群部署时 提供丰富的路由策略 包括 FIRST 第一个 固定选择第一个机器 LAST 最后一个 固定选择最后一个机器 ROUND 轮询 RANDOM 随机 随机选择在线的机器 CONSISTENT H
  • DataX同步数据到StarRocks问题记录

    目录 需求 问题 1 连接失败 2 Too Many Versions 3 特殊字符问题 4 类型转换为问题 5 时区问题 6 权限问题 其他 需求 最近一段时间在做数据治理的数据中台项目 前两天项目上线 整个数据治理的流程是先从数据归集到
  • DataX :文本文件 -> mysql 的使用及安装教程

    DataX安装环境准备 jdk1 6以上 python2 0 DataX安装 1 官网下载DataX https github com gkbattle13 DataX 点击Download下载地址 2 解压DataX tar zxvf d
  • datax源码解析-任务拆分机制详解

    datax源码解析 任务拆分机制详解 写在前面 此次源码分析的版本是3 0 因为插件是datax重要的组成部分 源码分析过程中会涉及到插件部分的源码 为了保持一致性 插件都已大部分人比较熟悉的mysql为例子说明 本文我们来看看datax的
  • 完整安装datax-web教程

    1 安装mysql5 7 a 创建目录下载安装rpm包 mkdir p opt software cd opt software wget i c http dev mysql com get mysql57 community relea

随机推荐

  • 基于R的Bilibili视频数据建模及分析——预处理篇

    基于R的Bilibili视频数据建模及分析 预处理篇 文章目录 基于R的Bilibili视频数据建模及分析 预处理篇0 写在前面1 项目介绍1 1 项目背景1 2 数据来源1 3 数据集展示 2 数据预处理2 1 删除空数据2 2 增加id
  • 基于R的Bilibili视频数据建模及分析——变量相关性分析篇

    基于R的Bilibili视频数据建模及分析 变量相关性分析篇 文章目录 基于R的Bilibili视频数据建模及分析 变量相关性分析篇 0 写在前面 1 数据分析 1 1 变量相关性分析 1 2 单元数据直观展示 1 3 多元数据直观展示 2
  • 基于R的Bilibili视频数据建模及分析——聚类分析篇

    基于R的Bilibili视频数据建模及分析 聚类分析篇 文章目录 基于R的Bilibili视频数据建模及分析 聚类分析篇 0 写在前面 1 数据分析 1 1 聚类分析 1 2 聚类统计 1 3 系统聚类 1 4 Kmeans与主成分分析 2
  • 基于R的Bilibili视频数据建模及分析——建模-因子分析篇

    基于R的Bilibili视频数据建模及分析 建模 因子分析篇 文章目录 基于R的Bilibili视频数据建模及分析 建模 因子分析篇 0 写在前面 1 数据分析 1 1 建模 因子分析 1 2 对数线性模型 1 3 主成分分析 1 4 因子
  • 大数据技术之Maxwell基础知识

    大数据技术之Maxwell基础知识 文章目录 大数据技术之Maxwell基础知识0 写在前面1 Maxwell 概述1 1 Maxwell 定义1 2 Maxwell 工作原理1 2 1 MySQL 主从复制过程1 2 2 Maxwell
  • 大数据技术之Maxwell入门案例学习

    大数据技术之Maxwell入门案例学习 文章目录 大数据技术之Maxwell入门案例学习1 写在前面2 Maxwell 使用2 1 Maxwell 安装部署2 2 Maxwell 入门案例2 2 1 监控 Mysql 数据并在控制台打印2
  • Canal实时监控案例

    Canal实时监控案例 文章目录 Canal实时监控案例0 写在前面1 TCP 模式测试1 1 IDEA创建项目canal module 1 2 通用监视类 CanalClient1 2 1 Canal 封装的数据结构1 2 2 在 can
  • unity笔记--Transform.SetSibling

    transform SetAsLastSibling 将变换移动到本地变换列表的末尾 即设置为同级索引中的最后一项 transform SetAsFirstSibling 将变换移动到本地变换列表的开头 即设置为同级索引中的第一项 tran
  • 大数据技术之Canal入门篇

    大数据技术之Canal入门篇 文章目录 大数据技术之Canal入门篇写在前面第 1 章 Canal 入门1 1 什么是 Canal1 2 MySQL 的Binlog1 2 1 什么是 Binlog1 2 2 Binlog 的分类 1 3 C
  • Doris集成Spark读写的简单示例

    Doris集成Spark读写的简单示例 文章目录 Doris集成Spark读写的简单示例0 写在前面1 Spark Doris Connector介绍2 基本示例2 1 提前准备表和数据2 2 新建项目2 3 使用SQL方式进行读写2 3
  • Linux用户与用户组介绍

    Linux用户与用户组介绍 文章目录 Linux用户与用户组介绍0 写在前面1 group1 1 什么是组 xff1f 1 2 groupadd1 2 groupmod1 3 groupdel1 4 gpasswd1 5 相关文件说明 2
  • Linux安装Oracle数据库

    Linux安装Oracle数据库 文章目录 Linux安装Oracle数据库0 写在前面1 Oracle 数据库1 1 简介1 2 Oracle 与 MySQL 的SQL 区别 2 前置准备2 1 安装依赖包2 2 配置用户组2 3 上传安
  • DataX与DB2导入导出案例

    DataX与DB2导入导出案例 文章目录 DataX与DB2导入导出案例0 写在前面1 DB2介绍2 DB2数据库对象关系3 安装前的准备3 1 安装依赖3 2 修改配置文件 sysctl conf3 3 修改配置文件 limits con
  • Doris集成其他系统——ODBC外部表

    Doris集成其他系统 ODBC外部表 文章目录 Doris集成其他系统 ODBC外部表0 写在前面1 正文1 1 ODBC外部表介绍1 2 使用方式 2 使用 ODBC 的 MySQL 外表2 1 前置芝士2 2 安装 unixODBC2
  • Linux安装ElasticSearch

    Linux安装ElasticSearch 文章目录 Linux安装ElasticSearch0 写在前面1 环境准备2 ES安装2 1ES解压2 2 新增普通用户2 3 给新创建的普通用户授权2 4 给新创建的普通用户设置sudo权限2 5
  • Hadoop入门学习——简介篇

    Hadoop入门学习 简介篇 文章目录 Hadoop入门学习 简介篇1 大数据概论1 1 分布式 并行 1 2 大数据特点 xff08 4V xff09 1 2 1 Volume xff08 大量 xff09 1 2 2 Velocity
  • Hadoop之分布式技术

    Hadoop之分布式技术 文章目录 Hadoop之分布式技术1 我们为什么需要分布式1 1 计算问题1 2 存储问题 2 分布式系统概述3 分布式实现方案4 分布式系统5 集群6 负载均衡7 弹性8 故障转移 1 我们为什么需要分布式 1
  • 认识DataX及简单入门

    认识DataX及简单入门 文章目录 认识DataX及简单入门1 DataX的概述1 1 什么是DataX1 2 DataX 的设计1 3 支持的数据源1 3 支持的数据源1 4 框架设计1 5 运行原理1 6 DataX和Sqoop的对比
  • Nginx 反向代理及https配置

    参考代码 在server中添加 location api proxy set header Host host proxy set header X Real IP remote addr proxy set header X Forwar
  • DataX使用之基础案例

    DataX使用之基础案例 文章目录 DataX使用之基础案例0 写在前面1 从stream 流读取数据并打印到控制台2 读取 MySQL 中的数据存放到 HDFS2 1 查看官方模板2 1 1 mysqlreader 参数解析 xff1a