Docker部署DataX
Docker部署DataX
简介
- DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能
- 源码地址:https://github.com/alibaba/DataX
支持的数据源
DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入,目前支持数据如下图,详情请点击:DataX数据源参考指南
类型 | 数据源 | Reader(读) | Writer(写) | 文档 |
---|---|---|---|---|
RDBMS 关系型数据库 | MySQL | √ | √ | 读 、写 |
Oracle | √ | √ | 读 、写 | |
OceanBase | √ | √ | 读 、写 | |
SQLServer | √ | √ | 读 、写 | |
PostgreSQL | √ | √ | 读 、写 | |
DRDS | √ | √ | 读 、写 | |
Kingbase | √ | √ | 读 、写 | |
通用RDBMS(支持所有关系型数据库) | √ | √ | 读 、写 | |
阿里云数仓数据存储 | ODPS | √ | √ | 读 、写 |
ADB | √ | 写 | ||
ADS | √ | 写 | ||
OSS | √ | √ | 读 、写 | |
OCS | √ | 写 | ||
Hologres | √ | 写 | ||
AnalyticDB For PostgreSQL | √ | 写 | ||
阿里云中间件 | datahub | √ | √ | 读 、写 |
SLS | √ | √ | 读 、写 | |
图数据库 | 阿里云 GDB | √ | √ | 读 、写 |
Neo4j | √ | 写 | ||
NoSQL数据存储 | OTS | √ | √ | 读 、写 |
Hbase0.94 | √ | √ | 读 、写 | |
Hbase1.1 | √ | √ | 读 、写 | |
Phoenix4.x | √ | √ | 读 、写 | |
Phoenix5.x | √ | √ | 读 、写 | |
MongoDB | √ | √ | 读 、写 | |
Cassandra | √ | √ | 读 、写 | |
数仓数据存储 | StarRocks | √ | √ | 读 、写 |
ApacheDoris | √ | 写 | ||
ClickHouse | √ | √ | 读 、写 | |
Databend | √ | 写 | ||
Hive | √ | √ | 读 、写 | |
kudu | √ | 写 | ||
selectdb | √ | 写 | ||
无结构化数据存储 | TxtFile | √ | √ | 读 、写 |
FTP | √ | √ | 读 、写 | |
HDFS | √ | √ | 读 、写 | |
Elasticsearch | √ | 写 | ||
时间序列数据库 | OpenTSDB | √ | 读 | |
TSDB | √ | √ | 读 、写 | |
TDengine | √ | √ | 读 、写 |
部署
部署配置MySQL
- 部署文件如下
services:
mysql:
image: mysql:8.0.30
container_name: datax-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: datax
TZ: Asia/Shanghai
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql
- 启动
docker-compose up -d
- 配置root远程访问权限
GRANTALLON *.* TO'root'@'%';
flush privileges;
- 远程连接并执行sql语句
create database datax_web_db default character set utf8mb4 collate utf8mb4_general_ci;
create user 'datax_web'@'%' identified with mysql_native_password by '123456';
grant all privileges on datax_web_db.* to 'datax_web'@'%';
flush privileges;
执行https://github.com/WeiYe-Jing/datax-web/blob/master/bin/db/datax_web.sql
部署DataX
- 推荐镜像
两个镜像一样,拉取不了第一个的可以拉取第二个
- docker.io/linshellfeng/datax_web:3.0.1
- swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/linshellfeng/datax_web:3.0.1
- 创建文件夹并写入配置文件:
mkdir -p config && vim config/bootstrap.properties
DB_HOST=<mysql_host>
DB_PORT=3306
DB_USERNAME=datax_web
DB_PASSWORD=123456
DB_DATABASE=datax_web_db
- 部署文件
services:
datax-web:
image: docker.io/linshellfeng/datax_web:3.0.1
container_name: datax-web
restart: always
privileged: true
ports:
- 9527:9527
volumes:
- ./config/bootstrap.properties:/home/datax/datax-web-2.1.2/modules/datax-admin/conf/bootstrap.properties
- 部署
docker-compose up -d
- 正常启动的日志
[root@localhost datax-web]# docker logs -f datax-web
1======begin start up mysql
2024-12-04 12:22:05.953 [INFO] (7) Try To Start Modules In Order
2024-12-04 12:22:06.068 [INFO] (15) ####### Begin To Start Module: [datax-admin] ######
2024-12-04 12:22:06.083 [INFO] (23) load environment variables
2024-12-04 12:22:06.779 [INFO] (23) /home/datax/jdk1.8.0_162/bin/java
2024-12-04 12:22:06.785 [INFO] (23) Waiting DATAX-ADMIN to start complete ...
2024-12-04 12:22:07.141 [INFO] (23) DATAX-ADMIN start success
2024-12-04 12:22:07.156 [INFO] (250) ####### Begin To Start Module: [datax-executor] ######
2024-12-04 12:22:07.168 [INFO] (258) load environment variables
2024-12-04 12:22:07.902 [INFO] (258) /home/datax/jdk1.8.0_162/bin/java
2024-12-04 12:22:07.908 [INFO] (258) Waiting DATAX-EXEXUTOR to start complete ...
2024-12-04 12:22:08.329 [INFO] (258) DATAX-EXEXUTOR start success
2======init datax-web server finished
0======start up /usr/sbin/init
- 访问验证,账密:
admin/123456