环境配置
Python:Python 2.7.9
Java: 1.8
wget -c https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -xzvf Python-2.7.9.tgz -C /usr/local/python
cd /usr/local/python/Python-2.7.9/
LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure
make
make install
1:DataX下载安装
DataX 下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
tar -zxvf datax.tar.gz -C /usr/local/
进入 /usr/local/datax/bin,开始自检
cd /usr/local/datax/bin
python datax.py ../job/job.json
自检如果正常,将会返回如下结果
自检报错
DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2017, Alibaba Group. All Rights Reserved.
2023-02-02 09:12:52.355 [main] WARN ConfigParser - 插件[streamreader,streamwriter]加载失败,1s后重试... Exception:Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误,您提供的配置文件[/usr/local/datax/datax/plugin/reader/._mongodbreader/plugin.json]不存在. 请检查您的配置文件.
2023-02-02 09:12:53.361 [main] ERROR Engine -
经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[Common-00], Describe:[您提供的配置文件存在错误信息,请检查您的作业配置 .] - 配置信息错误,您提供的配置文件[/usr/local/datax/datax/plugin/reader/._mongodbreader/plugin.json]不存在. 请检查您的配置文件.
at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26)
at com.alibaba.datax.common.util.Configuration.from(Configuration.java:95)
at com.alibaba.datax.core.util.ConfigParser.parseOnePluginConfig(ConfigParser.java:153)
at com.alibaba.datax.core.util.ConfigParser.parsePluginConfig(ConfigParser.java:125)
at com.alibaba.datax.core.util.ConfigParser.parse(ConfigParser.java:63)
at com.alibaba.datax.core.Engine.entry(Engine.java:137)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
如果自检失败,需要手动删除
datax/plugin/reader/ 下所有._xxxx(.开头的)隐藏文件
datax/plugin/writer/ 下所有._xxxx(.开头的)隐藏文件
cd ../plugin/
find ./* -type f -name "._*er"
rm -rf */._*
#在查询如果没有文件了在重新初始化
find ./* -type f -name "._*er"
2:DataX-web下载安装
百度网盘 请输入提取码 提取码:cpsk
2.1: 解压
tar -zxvf datax-web-2.1.2.tar.gz -C /usr/local
cd datax-web-2.1.2/bin
2.2:执行一键安装脚本
./install.sh
#一路按y同意即可,或者使用
./install.sh --force
2.3:数据库初始化
Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [{INSTALL_PATH}/bin/db/datax-web.sql]? (Y/N)y
Please input the db host(default: 127.0.0.1):
Please input the db port(default: 3306):
Please input the db username(default: root):
Please input the db password(default: ):
Please input the db name(default: dataxweb)
需要提前安装mysql数据库,创建用户,指定数据库,比如dataxweb。
关于数据库的配置,也可以直接在这里修改,修改之后重启服务即可。
vi ./modules/datax-admin/conf/bootstrap.properties
2.4 配置Datax位置
vi ./modules/datax-execute/bin/env.properties
### 执行datax的python脚本地址
PYTHON_PATH=/usr/local/datax/datax/bin/datax.py
2.5:启动服务
# 启动服务
./bin/start-all.sh
运行jps查看状态,如果出现DataXAdminApplication和DataXExecutorApplication进程,这表示项目运行成功
jps
18726 Jps
17575 DataXAdminApplication
17851 DataXExecutorApplication
如果项目启动失败,请检查启动日志:modules/datax-admin/bin/console.out
或者modules/datax-executor/bin/console.out
2.6: 访问
浏览器访问 http://192.168.47.136:9527/index.html 输入用户名 admin 密码 123456 就可以直接访问系统。关闭防火墙或者开启端口访问。
3:datax_web的使用
3.1:创建项目
3.2:执行器管理中新建执行器(原来库里已有默认的,可直接使用)
1、AppName: (与datax-executor中application.yml的datax.job.executor.appname保持一致)
每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
2、名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
3、排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
4、注册方式:调度中心获取执行器地址的方式;
自动注册:执行器自动进行执行器注册,调度中心通过底层注册表可以动态发现执行器机器地址;
手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用;
5、机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息;
3.3:新建数据源
新建数据源的时候测试连接报错。
Code:[MYSQLErrCode-02], Description:[数据库服务的IP地址或者Port错误,请检查填写的IP地址和Port或者联系DBA确认IP地址和Port是否正确。
如果是同步中心用户请联系DBA确认idb上录入的IP和PORT信息和数据库的当前实际信息是一致的]. -
具体错误信息为:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure The last packet successfully received from the server was 67 milliseconds ago. The last packet sent successfully to the server was 67 milliseconds ago.
最开始写的是useSSL=true。后面百度后改成useSSL=false就可以了。
3.4:任务管理中Datax任务模板创建
3.5: 任务构建
寻找需要转储的表和字段
选对应的目标库与目标库,字段对应上即可。可以在执行前编写前置sql,比如清除表数据操作等
勾选对应的标和字段,按顺序匹配
然后构建,点击生成模板,下一步即可
构建任务成功后,任务管理模块就可以看到生成的任务管理了。可以点击启动,或者执行一次,然后查看日志看看是否成功。
如果报错的话,可以查看日志以及检查相关的脚本信息