美文网首页
Datax,Datax-web在Win10中安装使用

Datax,Datax-web在Win10中安装使用

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2021-09-27 16:46 被阅读0次

1. Datax安装

1.1 Python环境安装

Datax需要Python2环境,先安装环境。下载地址:Python 2.7.18

下载版本
安装python后(目录随意),环境变量Path中会有安装的python,
环境变量
在cmd中python -v查看版本信息,能查看基本就可以了。
cmd查看

1.2 下载datax

参考官网教程:

datax有打包好的,也有源码,因自带的是mysql5驱动,所以如果要换MySQL8驱动,只能下载源码。我下载的源码自己编译的。如果连接mysql5,直接下载官方的压缩包使用。

  1. 下载源码,导入ide,maven自动导包,直到没有报错
    注意:有一些特殊的数据库驱动包是用的本地的,都在自己的项目pom文件中有目录,我导入时oscarJDBC.jar驱动就没有,所以网盘中转载了别人找到的各个数据库驱动,放到项目中就可以了。
    百度网盘:数据库连接驱动
    提取码: p2a3

    1. Sybase驱动: jconn3-6.0.jar
    2. Sqlserver驱动: sqljdbc4-4.0.jar
    3. Postgresql驱动:postgresql-0.9.3-1102-jdbc4.jar
    4. oscarJDB驱动: oscarJDBC.jar
    5. Oracle12C驱动: orai18n.jar ojdbc8-12.2.0.1.jar,ojdbc8.jar
    6. Mysql驱动: mysql-connector-java-5.1.48.jar
    7. Mongodb驱动: mongodb-driver-3.8.2.jar
    8. kingbase驱动: kingbase8-8.2.0.jar
    9. greenplum驱动:greenplum-jdbc-5.1.4.jar
    10. Gbasse驱动: gbase-8.3.81.53.jar
    11. DM(达梦)驱动: Dm7jdbcDriver16-7.6.0.165.jar,DM7jdbcDriver18.jar
    12. Vertica驱动: vertica-jdbc-9.1.1-0.jar
    13. DB2驱动: db2jcc-3.72.44.jar
    14. Teradata驱动: terajdbc4.jar
    
  2. 更换驱动版本:在最外层pom文件中,5.1.32 --> 8.0.25


    MySQL版本
  3. 更换驱动名字,我在eclipse中,快捷键ctrl + h打开搜索窗口,将5的驱动替换成8的:mysql-connector-java --> com.mysql.cj.jdbc.Driver

    搜索
    替换
    显示替换了7处,在文件中都可以看到,可以自己点进去看看替换的地方。
    替换的驱动名称
  4. 修改zeroDateTimeBehavior的值:convertToNull --> CONVERT_TO_NULL
    我不知道为什么,看别人说要替换,我就换了

  5. 按照官网的命令打包
    官网命令:mvn -U clean package assembly:assembly -Dmaven.test.skip=true
    可以在 cmd中打包,我在eclipse中build的

    打包
    不知道为什么,我打包出来的体积比较大,有1.17个G,官网下载打好的包只有800多M,但是也不影响使用
  6. 测试使用
    将打好的包解压到自己的目录,使用官网给的命令测试,就用的job文件夹下job.json文件进行测试的:

 cd {YOUR_DATAX_DIR_BIN}
 python datax.py ../job/job.json 

需要注意一点:官网直接下载的压缩包能直接测试,但是自己打包的会报错,缺少配置,有2种方法修改:

  • 方法1:去掉job中的speed的速度值byte,
  • 方法2:添加core字段,在其中添加speed,
    即构建的json文件中的core.transport.channel.speed.record和job.setting.speed.record需要同时进行设置或全都不设置。


    修改json文件

    每个字段什么意思,自己可以在官网查一下,我添加了,如下:

{
    "core":{
        "transport":{
            "channel":{
                "speed":{
                    "channel": 2,
                    "byte":10485760,
                    "batchSize":2048
                }
            }
        }
    },
    "job": {
        "setting": {
            "speed": {
                "byte":20971520
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "streamreader",
                    "parameter": {
                        "column" : [
                            {
                                "value": "DataX",
                                "type": "string"
                            },
                            {
                                "value": 19890604,
                                "type": "long"
                            },
                            {
                                "value": "1989-06-04 00:00:00",
                                "type": "date"
                            },
                            {
                                "value": true,
                                "type": "bool"
                            },
                            {
                                "value": "test",
                                "type": "bytes"
                            }
                        ],
                        "sliceRecordCount": 100000
                    }
                },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": false,
                        "encoding": "UTF-8"
                    }
                }
            }
        ]
    }
}

测试完结果:


测试结果

到这,datax就算完成了,可以使用了

2. Datax-web安装

提一下,datax-web是在datax的基础上使用的,所以要想用datax-web,必须先安装datax
官方教程:

  • datax-web · GitHub
    官方datax-web中也包含了datax部分教程,若datax已安装,可直接看datax-web部分

2.1 下载datax-web

直接github上下载下来源码,导入ide

2.2 运行datax-web

主要包括2个运行项目,datax-admindatax-executor

  1. 在mysql中创建datax_web数据库,执行/datax-web/bin/db/datax_web.sql文件,导入数据库
  2. 修改datax-admin中的数据库连接,将配置文件中的变量都变成固定值,有好多,具体其他的请参考官网。
    配置文件
  3. 修改datax-executor配置文件中job文件位置和datax位置
    配置文件2
  4. 依次运行datax-admin -- datax-executor,启动好以后就可以访问了
  • 地址:http://127.0.0.1:8080/index.html
  • 账号:admin
  • 密码:123456
    注意:启动可能会报错,缺少hadoop文件,主要是少了winutils工具,虽然不影响使用,还是要解决一下。下载以下文件,配置环境变量即可:
    hadoop-2.6.5百度网盘-链接:
    提取码: xjq3
    若版本不对,可以选择其他版本。转载其他人的:
    winutils.png
    各版本hadoop百度网盘-链接:
    提取码: 8jfi
    添加HADOOP_HOME环境变量,Path中也加入,如下图:
    环境变量
    Path
  1. datax-web使用
    初次使用datax-web需要配置几个东西
  • 5.1 添加项目,将datax执行的任务加到所属项目,方便管理,实质作用不大,但任务多了,好查找
  • 5.2 配置数据库,各种用到的数据源都添加到里面,用的时候选择已添加的数据源
    不要用local host!!!千万不要用,用127.0.0.1就可以了
  • 5.3 配置执行器,主要是为了识别datax位置


    配置项
  • 5.4 任务管理
    接下来是最主要的部分了,在 任务管理 项中,任务管理也是分3步完成:创建任务模板--任务构建--任务管理
    datax执行
    • 任务模板,主要配置执行datax的一些规则:路由策略、定时器、启动参数等等
    • 任务构建,就是生成datax使用的json文件,用datax-web主要就是因为他能自动生成这个:
      按它的步骤一步步选择就行,基本能看懂,选择表和字段,在第四步时注意顺序:
      顺序
      生成的Json文件可能有小问题,无法执行,其实和datax自己打包有关,自己打的包json文件需要speed同时有或同时没有,我直接去掉了,先试试
      修改json
    • 任务管理
      在这里执行或修改已经构建完成的任务
      我试着执行了一个Oracle --> Mysql的转换。


      执行任务
  • 5.5 日志管理
    任务执行过程中,可以在这里查看日志和结果


    日志管理
    日志记录

    由日志可以看出,我执行的Oracle --> Mysql的任务,有25733316条数据,速度22772rec/s,用了差不多20分钟


相关文章

网友评论

      本文标题:Datax,Datax-web在Win10中安装使用

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