大数据学习(58)-DolphinScheduler使用DataX实现数据同步
&&大数据学习&&
🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞
一、首页
DolphinScheduler的UI页面首页:
流程:工作流
任务:工作单元
二、工作流基础配置
工作流配置页面,分为三个模块:工作流定义、工作流实例和任务实例。
工作流定义:用于定义工作流,包括工作流各个节点(一个工作单元)任务详情和各个节点的依赖关系。
工作流实例:每执行一次工作流,就会生成一个工作流实例。可以在这个地方查看所有运行过的工作流。
任务实例:工作流中的每个节点(任务),每执行一次就会生成一个任务实例。在这里可以查看所有执行过的节点任务。
一、编写 DataX 任务配置文件
1. 创建配置文件
-
在服务器上创建一个 JSON 文件(如
mysql_to_hdfs.json
),用于定义 DataX 任务。
2. 配置文件内容
-
以下是一个完整的 DataX 配置文件示例:
{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "root", "password": "123456", "column": ["id", "name", "age"], "connection": [ { "table": ["user"], "jdbcUrl": ["jdbc:mysql://localhost:3306/test"] } ] } }, "writer": { "name": "hdfswriter", "parameter": { "defaultFS": "hdfs://localhost:9000", "fileType": "text", "path": "/user/hive/warehouse/user", "fileName": "user.txt", "writeMode": "truncate", "fieldDelimiter": "," } } } ], "setting": { "speed": { "channel": 3 } } } }
3. 参数说明
-
reader
:配置 MySQL 数据源。-
username
:MySQL 用户名。 -
password
:MySQL 密码。 -
column
:需要同步的字段。 -
jdbcUrl
:MySQL 连接地址。 -
table
:需要同步的表。
-
-
writer
:配置 HDFS 目标。-
defaultFS
:HDFS 地址。 -
path
:HDFS 目标路径。 -
fileName
:写入的文件名。 -
writeMode
:写入模式(如覆盖或追加)。 -
fieldDelimiter
:字段分隔符(如逗号)。
-
三、在 DolphinScheduler 中创建任务
1. 创建项目
-
在 DolphinScheduler 首页,点击 项目管理。
-
点击 创建项目,输入项目名称(如
data_sync
),然后点击 提交。
2. 创建工作流
-
进入刚刚创建的项目,点击 工作流定义。
-
点击 创建工作流,输入工作流名称(如
mysql_to_hdfs
),然后点击 确定。
3. 添加 Shell 任务
-
在工作流编辑页面,点击 添加任务,选择 Shell 任务。
-
配置 Shell 任务的参数:
-
任务名称:例如
run_datax
。 -
脚本:填写调用 DataX 的命令。
python /path/to/datax/bin/datax.py /path/to/mysql_to_hdfs.json
-
/path/to/datax/bin/datax.py
:DataX 的执行脚本路径。 -
/path/to/mysql_to_hdfs.json
:DataX 任务配置文件的路径。
-
-
资源:如果需要上传配置文件(如
mysql_to_hdfs.json
),可以在这里上传。 -
自定义参数:如果需要动态传入参数(如 MySQL 用户名、密码、HDFS 路径等),可以在这里定义。
-
5. 保存工作流
-
配置完成后,点击 保存,然后点击 上线,使工作流生效。
6. 运行工作流
-
在工作流列表页面,找到刚刚创建的工作流,点击 运行。
-
选择运行参数(如果有自定义参数),然后点击 确认,触发任务执行。
四、验证数据同步
1. 查看任务日志
-
在 DolphinScheduler 中,进入 任务实例 页面,找到刚刚运行的任务。
-
点击任务名称,查看任务日志,确保任务成功完成。
2. 检查 HDFS 数据
-
使用 HDFS 命令检查数据是否成功写入:
hdfs dfs -ls /user/hive/warehouse/user hdfs dfs -cat /user/hive/warehouse/user/user.txt