Linux部署Datax 以及 Datax-web

背景
   接到任务,需要部署一套可以兼容多数据源的数据抽取项目,例如从 数据库A-----拉取数据------数据库B。两边的数据库都是可以不同类型。A可以是mysql。B可以是oracle。由于之前部署过阿里开源的Datax(分布式数据同步工具),Datax-web(可视化页面),所以就直接开干。

部署Datax
   由于在部署过程中,由于我的数据源的mysql版本是8.x、目标数据库也是mysql8.x。导致部署后执行任务出现以下错误

所以我打算拆分成2个部署分支,1是正常的mysql5.x部署。2是针对mysql8.x的自构建部署。

前置条件要求如下,缺少的自行搜索安装。
   .jdk:1.8.x
  .maven: 3.6.x
  .python: 2.x 或者3.x都可以。3.x要自行替换脚本(需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)
  .mysql: 5.x以上(非必须,rds数据或者其他其他服务器的mysql数据库都可以,主要是给datax-web使用的)

1.mysql5.x部署
  1.1.在Linux服务器的某个文件夹下载压缩包

git clone http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

 1.2.解压压缩包

tar -zxvf datax.tar.gz

 1.3.进入bin中,执行测试脚本

$ cd  {YOUR_DATAX_HOME}/bin
$ python datax.py ./stream2stream.json

以下是 stream2stream.json的内容,可复制创建。

{
  "job": {
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "sliceRecordCount": 10,
            "column": [
              {
                "type": "long",
                "value": "10"
              },
              {
                "type": "string",
                "value": "hello,你好,世界-DataX"
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 5
       }
    }
  }
}

 执行成功后会出现以下内容

如果出现了以下提示
配置信息错误,您提供的配置文件[/usr/local/datax/plugin/reader/._drdsreader/plugin.json]不存在. 请检查您的配置文件
是因为 plugin/reader  以及  plugin/writer 文件下面有一些 ._开头的文件、直接删除即可

## 进入
cd plugin/reader

## 列出全部文件
ls -al

## 删除以 ·_ 开头的文件
rm -rf ._*


## 同样的删除writer目录下的全部的以 .开头的文件
cd plugin/writer

## 列出全部文件
ls -al

## 删除以 ·_ 开头的文件
rm -rf ._*


2.mysql8.x部署
   2.1.下载源码

git clone https://github.com/alibaba/DataX.git

    2.2..修改mysql包的驱动版本
  找到位于 {DataX_source_code_home}/mysqlreader/下的pom.xml文件
                 {DataX_source_code_home}/mysqlwriter/ 下的pom.xml文件
将version的值改为8.0.X(可以直接搜索‘mysql-connector-java’快速定位,X写你自己想要的版本号)

   2.3..修改zeroDateTimeBehavior的值convertToNull 为 CONVERT_TO_NULL

编辑{DataX_source_code_home}/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java  文件
全文替换 convertToNull 为 CONVERT_TO_NULL

2.4.修改【DataBaseType.java】jdbc驱动的名称
     全文替换 com.mysql.jdbc.Driver 为 com.mysql.cj.jdbc.Driver


2.5.jdbc链接追加useSSL=false设置_这样子可以去掉mysql的警告(非必须)
比如:python datax.py file.json , 
则file.json的配置项:"jdbcUrl":"jdbc:mysql://${writer_gateway}/oms?useUnicode=true&characterEncoding=UTF-8&useSSL=false"


2.6.通过maven打包 【建议在window中打包,Linux打包了几次都卡主了】

cd {DataX_source_code_home}
mvn -U clean package assembly:assembly -Dmaven.test.skip=true

打包成功后会显示如下内容。打包时间其实还是蛮久的。

    打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,查看datax/plugin/writer/mysqlwriter/libs/目录,已经包含新版的驱动jar包
2.7.进入bin目录下执行脚本测试,步骤跟5.x版本的一致,没有报错就说明搞定了。
如果出现了以下提示
配置信息错误,您提供的配置文件[/usr/local/datax/plugin/reader/._drdsreader/plugin.json]不存在. 请检查您的配置文件
请按照上面的5.x的解决处理即可。
部署datax-web(可视化页面)
   3.1.去百度云盘下载datax-web源码

https://pan.baidu.com/s/13yoqhGpD00I82K4lOYtQhg    提取码:cpsk

  3.2.上传至服务器解压

tar -zxvf datax-web-{VERSION}.tar.gz

3.3.进去package 文件夹
解压里面的两个文件。

tar -zxvf  datax-admin_2.1.2_1.tar.gz
tar -zxvf  datax-executor_2.1.2_1.tar.gz

datax-admin需要mysql数据库连接。我的是rds数据库8.x.
先把/bin/db/datax-web.sql 去rds数据库执行
然后再去 datax-admin/conf/bootstrap.properties  下面,把数据库连接填上去

#Database
DB_HOST=
DB_PORT=
DB_USERNAME=
DB_PASSWORD=
DB_DATABASE=

3.4.找到 datax-execute/bin/env.properties配置文件,指定PYTHON_PATH的路径

### 执行datax的python脚本地址
PYTHON_PATH=/home/datax/bin/datax.py(请根据自己的实际位置填写)

### 保持和datax-admin服务的端口一致;默认是9527,如果没改datax-admin的端口,可以忽略
DATAX_ADMIN_PORT=

以上工作完成后,安全组(我的是阿里云服务器)需要开放 9999、9502、9527端口。
如果需要更改端口,可以去
datax-admin/bin/env.properties中

datax-executor/bin/env.properties 中
 配置都改完后
启动 datax_admin项目

cd  datax-admin/bin
./datax-admin.sh start
#运行日志同样在 bin目录下,可以查看日志
tail -f console.out 

 启动 datax-executor

cd datax-executor/bin
./datax-executor.sh start
#查看日志
tail -f console.out 

通过  IP:9527/index.html  访问,输入用户名 admin 密码 123456 就可以直接访问系统
   
如果执行任务时,执行失败并且日志提示【在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数】,那就需要去 修改datax的配置文件。不需要重启项目

收工,有问题可以留言讨论交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值