美文网首页
datax部署和使用

datax部署和使用

作者: zzz_0427 | 来源:发表于2024-04-02 15:19 被阅读0次

一、DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

简单一点说明就是:datax是提供一个各种数据库异构的数据库同步工具,效率很高。当然和flinkX也是有一定的相识度的,但是flink本身更加适合流式处理,datax更适合离线数据库处理。

二、简单的图片说明:

image.png image

三、适配说明:

类型 数据源 Reader(读) Writer(写) 文档
RDBMS 关系型数据库 MySQL 读 、写
Oracle 读 、写
OceanBase 读 、写
SQLServer 读 、写
PostgreSQL 读 、写
DRDS 读 、写
Kingbase 读 、写
通用RDBMS(支持所有关系型数据库) 读 、写
阿里云数仓数据存储 ODPS 读 、写
ADB
ADS
OSS 读 、写
OCS
Hologres
AnalyticDB For PostgreSQL
阿里云中间件 datahub 读 、写
SLS 读 、写
阿里云图数据库 GDB 读 、写
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 读 、写

四、用docker方式安装datax,集成datax-web

1)安装包下载,(所有下载格式为:*.tar.gz)

datax的官网说明:https://github.com/alibaba/DataX/tree/datax_v202303,根据版本选择即可。

datax下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202303/datax.tar.gz,这个版本大于1.48G。

datax-web现在地址:https://github.com/WeiYe-Jing/datax-web/tags,下载最新版即可。

2)修改datax-web部分

1、将datax-web工程解压到处自己的的编译器。


2、修改针对于docker的配置
    a、在datax-admin中的datax-admin.sh中加入环境变量,主要为数据库配置
JAVA_OPTS={JAVA_OPTS}" -DDB_HOST="{DB_HOST}" -DDB_PORT="{DB_PORT}" -DDB_USERNAME="{DB_USERNAME}" -DDB_PASSWORD="{DB_PASSWORD}" -DDB_DATABASE="{DB_DATABASE}
加在:


     b、加入心跳或者,修改启方式
    说明:因为datax-admin和datax-executor脚本中都是采用nohup <execute_scripts> ><log> &的后台形式,在docker中这种方式不能成为监控服务,会被一直重启。

在datax-web工程的bin目录下加入心跳,目的最大程度的减少对于源代码和脚本的影响,加入一个监控就行。



while true
do
jps | grep "Datax*"
sleep 30
done
3、打包
mvn clean install



3)制作docker镜像
1、准备需要的文件

a、datax.tar.gz # 下载的datax的原生tar.gz包。
b、datax-web-2.1.2.tar.gz #打包后的datax-web.tar.gz文件
c、Dockerfile-DataxWeb # dockerfile,其中sed部分为了修改问题,加入

FROM java:8
RUN mkdir -p /datax
WORKDIR /datax
ADD ./datax.tar.gz .
ADD ./datax-web-2.1.2.tar.gz .
RUN sed -i 's/"byte": -1/"byte": 2097152/g' ./datax/conf/core.json
ENV DATAX_HOME=/datax/datax
CMD sh -c "./datax-web-2.1.2/bin/install.sh --force" && sh -c "./datax-web-2.1.2/bin/start-all.sh" && sh -c "./datax-web-2.1.2/bin/health.sh"

d、docker-compose.yml

version: '3'
services:
xbd-mysql:
image: mysql:8.0.25
container_name: xbd-mysql
restart: always
privileged: true
ports:
- 3306:3306
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=root
volumes:
- ./db:/docker-entrypoint-initdb.d
- /var/lib/mysql:/var/lib/mysql
command:
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password

xbd-datax-web:
build:
context: ./
dockerfile: ./Dockerfile-DataxWeb
image: xbd-datax-web
container_name: xbd-datax-web
restart: always
privileged: true
ports:
- 8080:9527
environment:
- TZ=Asia/Shanghai
- DB_HOST=xbd-mysql
- DB_PORT=3306
- DB_USERNAME=root
- DB_PASSWORD=root
- DB_DATABASE=datax
depends_on:
- xbd-mysql
e、db数据库初始化文件
datax_web.sql # 文件来着data-web工程的bin目录下
在最头部加入以下创建库的过程:
CREATE DATABASE IF NOT EXISTS datax DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

USE datax;
4)docker-compose运行
docker-compose up -d
五、页面测试:
1)界面地址:
a、http://<ip>:<port>/index.html # 主页
b、http://<ip>:<port>/doc.html # sagger页面
输入用户名 admin 密码 123456 就可以直接访问系统
2)使用:


相关文章

网友评论

      本文标题:datax部署和使用

      本文链接:https://www.haomeiwen.com/subject/ovywtjtx.html