DataX
一、DataX 介绍
DataX 是阿里巴巴开发的一个开源数据同步工具。
DataX :更加专注于批量数据的同步和迁移,适用于数据仓库建设、数据备份和数据迁移等场景。主要支持批处理模式,通过配置 JSON 文件来定义数据同步任务。不依赖于其他大数据计算框架。
二、DataX 使用
- 安装 DataX
首先,需要安装 DataX。可以从 GitHub 上下载 DataX 源码或预编译的二进制包:
git clone https://github.com/alibaba/DataX.git
进入 DataX 目录并编译:
cd DataX
mvn clean package assembly:assembly -Dmaven.test.skip=true
- 配置 JSON 文件
DataX 使用 JSON 文件来配置数据同步任务。以 MySQL 到 Hadoop 的数据同步为例,首先需要创建一个 JSON 配置文件,例如 mysql_to_hadoop.json。
以下是一个简单的配置示例:
{
"job": {
"setting": {
"speed": {
"channel": 3 // 并行度,可以根据需要调整
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "your_mysql_username",
"password": "your_mysql_password",
"connection": [
{
"table": ["your_table_name"],
"jdbcUrl": ["jdbc:mysql://your_mysql_host:3306/your_database"]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://your_hadoop_cluster",
"fileType": "text",
"path": "/user/hadoop/your_hdfs_path/",
"fileName": "your_file_name",
"column": [
{"name": "column1", "type": "string"},
{"name": "column2", "type": "int"},
{"name": "column3", "type": "date"}
],
"writeMode":"truncate",
"fieldDelimiter": "\t"
}
}
}
]
}
}
- 配置项说明
reader 部分:配置 MySQL 数据源的连接信息,包括用户名、密码、表名和 JDBC URL。
writer 部分:配置 Hadoop HDFS 的目标路径、文件类型(如 text、orc、parquet 等)、文件名、字段信息及写入模式。
setting:任务的全局设置。
在 DataX 的 hdfswriter 配置中,writeMode 参数用于指定写入数据到目标 HDFS 时的模式
append:追加模式。如果目标路径下已经存在文件,将在文件末尾追加新数据,而不会覆盖原有数据。
nonConflict:非冲突模式。如果目标路径下已经存在文件,任务会报错并终止,以避免覆盖现有文件。
truncate:截断模式。如果目标路径下已经存在文件,将删除现有文件,然后写入新数据