使用IntelliJ IDEA搭建datax-web开发环境

记录:372

场景:使用IntelliJ IDEA搭建datax-web开发环境,以及datax-web基本使用。

版本:

JDK 1.8

Python 2.7.5

datax-web开源地址https://github.com/WeiYe-Jing/datax-web

1.配置Maven环境

1.1安装目录

目录:D:\dev

1.2配置Maven远程和本地镜像仓库

修改文件:D:\dev\apache-maven-3.8.7\conf\settings.xml

修改内容:

<mirror> 
    <id>nexus-aliyun</id> 
    <mirrorOf>*</mirrorOf> 
    <name>Nexus aliyun</name> 
    <url>https://maven.aliyun.com/repository/public</url> 
</mirror>
<localRepository>D:\dev\maven-repo-3.8.7\repository</localRepository>

解析:在<mirrors></mirrors>标签内添加<mirror></mirror>内容,在</ettings></settings>标签内添加<localRepository></localRepository>。

1.3本地镜像仓库目录和配置文件

创建D:\dev\maven-repo-3.8.7\repository目录。

把D:\dev\apache-maven-3.8.7\conf\settings.xml文件拷贝到D:\dev\maven-repo-3.8.7\settings.xml

解析:repository中存放从远程仓库下载到本地的jar包等信息。

1.3配置环境变量和生效

依次点击和选择:此电脑->属性->高级系统设置->环境变量

在系统变量编辑框修改配置。

<1>新建系统变量

变量名称:MAVEN_HOME

变量值:D:\dev\maven-repo-3.8.7

<2>编辑系统变量Path

编辑系统变量Path,并添加行配置。

变量名称:Path

变量值:%MAVEN_HOME%\bin

2.下载源码

下载发布版本datax-web-v-2.1.2。

源码地址:https://github.com/WeiYe-Jing/datax-web

2.1浏览器直接下载

地址:https://github.com/WeiYe-Jing/datax-web/archive/refs/tags/v-2.1.2.zip

解析:直接在浏览器中输入地址就能下载。

2.2使用Git下载

命令:git@github.com:WeiYe-Jing/datax-web.git

3.解压源码

源码解压目录:D:\dev\ForDx\datax-web

4.使用IntelliJ IDEA打开源码

4.1在IDEA配置Maven

依次选择菜单:File->Settings->Build, Execution, Deployment->Build Tools->Maven。在对话框根据本机情况填写配置信息。本例配置信息。

Maven home path:D:/dev/apache-maven-3.6.3-idea

User settings file: D:\dev\apache-maven-3.6.3-idea\conf\settings.xml

Local repository:D:\dev\maven-idea-3.6.3

4.2解决缺少winutils.exe环境变量

datax-web在运行时报错,缺少winutils.exe环境变量。

(1)下载包

下载包:https://github.com/srccodes/hadoop-common-2.2.0-bin

(2)解压包

包名称:hadoop-common-2.2.0-bin-master,解压到指定目录。

(3)配置环境变量

右键:此电脑->高级系统设置->环境变量->系统变量

变量:

名称:HADOOP_HOME

值:D:\Program Files\hadoop\hadoop-common-2.2.0

添加Path变量:

名称:Path

值:%HADOOP_HOME%\bin

(4)环境变量生效

报错不生效的话,就重启电脑。

5.修改配置

端口约定

datax-admin服务端口:8081

datax-executor服务端口:8082

5.1配置文件的${}说明

在源码中提供的application.yml中使用了${}获取变量。${}获取变量来源方式,包括env.properties文件和bootstrap.properties文件。

(1)使用${}从env.properties获取配置变量

第一步,shell脚本从env.properties读取变量。

第二步,在shell脚本中,使用JAVA_OPTS的-D方式组装变量。

第三步,在shell脚本中,使用java命令把JAVA_OPTS参数传递给JVM,成为系统属性变量。

第四步,启动微服务时,在加载application.yml从使用${}从JVM系统属性变量中获取变量值。

(2)使用${}从bootstrap.properties获取配置变量

微服务在启动时,使用${}从JVM系统属性变量中获取变量值。

第一步:微服务启动时,会先加载bootstrap.properties变量,变量成为了系统属性变量。

第二步:微服务加载application.yml时,会使用${}从JVM系统属性变量中获取变量值。。

5.2修改datax-admin服务配置

在官网的application.yml配置文件中,使用${}获取变量值,

(1)配置端口

修改文件:../datax-admin/src/main/resources/application.yml文件

修改内容:

server:

port: 8081

(2)配置数据源

修改文件:../datax-admin/src/main/resources/bootstrap.properties文件

修改内容:

DB_HOST=192.168.19.202
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=123456
DB_DATABASE=datax_web

解析:在application.yml中使用${}从bootstrap.properties中获取变量。

(2)修改输出日志

修改文件:../datax-admin/src/main/resources/application.yml文件

修改内容:

logging:
  level:
    com.wugui.datax.admin.mapper: info
    path: ./data/applogs/admin

5.3修改datax-executor服务配置

(1)配置端口

修改文件:../datax-executor/src/main/resources/application.yml文件

修改内容:

server:
  port: 8082

(2)配置日志

修改文件:../datax-executor/src/main/resources/application.yml文件

修改内容:

logging:
  config: classpath:logback.xml
  path: ./data/applogs/executor/jobhandler

(3)配置datax的job相关配置

datax:
  job:
    admin:
      addresses: http://127.0.0.1:8081
    executor:
      appname: datax-executor
      ip:
      port: 9999
      logpath: ./data/applogs/executor/jobhandler
      logretentiondays: 30
    accessToken:
  executor:
    jsonpath: D:\\dev\\ForDx\\space\\executor\\json
  pypath: D:\dev\ForDx\space\datax\bin\datax.py

(4)已编译的datax放入指定目录

在application.yml配置了datax的执行脚本,需要把已编译的datax全量包放入指定目录,datax-executor在执行时,调用datax.py,去调用datax的插件。

目录:D:\dev\ForDx\space\datax

脚本:D:\dev\ForDx\space\datax\bin\datax.py

5.4初始化数据库

从../datax-web/bin/db目录下取出数据库脚本:datax_web.sql,在MySQL数据库中初始化这些表和数据。

本例数据库:datax_web。

6.在IntelliJ IDEA中启动

6.1启动datax-admin

在IntelliJ IDEA中,选中com.wugui.datax.admin.DataXAdminApplication启动类启动微服务。

6.2启动datax-executor

在IntelliJ IDEA中,选中com.wugui.datax.executor.DataXExecutorApplication启动类启动微服务。

7.登录信息

地址:http://127.0.0.1:8081/index.html

用户名/口令:admin/123456

8.基本操作

使用页面操作从MySQL数据hub01同步数据到MySQL数据库hub02中。

8.1登录页和首页

(1)登录页面

(2)首页

8.2项目管理

在项目管理,创建一个项目。

8.3数据源管理

创建两个数据源,分别是hub01和hub02。

数据源1:jdbc:mysql://192.168.19.202:3306/hub01?useSSL=false

数据源2:jdbc:mysql://192.168.19.202:3306/hub02?useSSL=false

8.4执行器管理

执行器管理,使用默认执行器。

8.5任务管理

在任务管理中,配置同步任务。

8.5.1DataX任务模板

在任务管理-DataX任务模板,配置任务模板。

8.5.2任务构建

在任务管理,任务构建,配置任务。

(1)构建reader

构建Reader,选择数据源,数据库表,配置相关信息。

(2)构建writer

构建writer,选择数据源,数据库表,配置相关信息。

(3)字段映射

对reader读取的表和writer写入的表做字段映射。

(4)构建

构建:生成JSON格式任务数据,是DataX要求的任务格式。

选择模板:选择DataX任务模板中已经生成的模板

复制JSON:可以复制配置任务的JSON数据。

构建前:

构建后:

(5)生成的JSON数据

生成的JSON数据,是DataX要求的标准格式的JSON数据,也就是任务数据。

{
  "job": {
    "setting": {
      "speed": {
        "channel": 3,
        "byte": 1048576
      },
      "errorLimit": {
        "record": 0,
        "percentage": 0.02
      }
    },
    "content": [
      {
        "reader": {
          "name": "mysqlreader",
          "parameter": {
            "username": "xxxxxx",
            "password": "xxxxxx",
            "column": [
              "`ID`",
              "`CITY_NAME`",
              "`LAND_AREA`",
              "`POPULATION`",
              "`GROSS`",
              "`CITY_DESCRIBE`",
              "`DATA_YEAR`",
              "`UPDATE_TIME`"
            ],
            "splitPk": "",
            "connection": [
              {
                "table": [
                  "t_city_01"
                ],
                "jdbcUrl": [
                  "jdbc:mysql://192.168.19.202:3306/hub01?useSSL=false"
                ]
              }
            ]
          }
        },
        "writer": {
          "name": "mysqlwriter",
          "parameter": {
            "username": "xxxxxx",
            "password": "xxxxxx",
            "column": [
              "`ID`",
              "`CITY_NAME`",
              "`LAND_AREA`",
              "`POPULATION`",
              "`GROSS`",
              "`CITY_DESCRIBE`",
              "`DATA_YEAR`",
              "`UPDATE_TIME`"
            ],
            "connection": [
              {
                "table": [
                  "t_city_02"
                ],
                "jdbcUrl": "jdbc:mysql://192.168.19.202:3306/hub02?useSSL=false"
              }
            ]
          }
        }
      }
    ]
  }
}

9.执行任务

在任务管理->任务管理目录下,下来菜单有以下有用操作。

执行一次:触发手动执行任务。

查看日志:会打印执行的详细日志。

编辑:可以对任务按需编辑。

删除:删除任务。

10.执行结果

把hub01数据库的t_city_01数据同步到了把hub02数据库的t_city_02。

11.集成Swagger

在datax-web中集成的Swagger作为接口API文档发布。

11.1静态页面位置

Swagger的静态资源在swagger-bootstrap-ui-1.9.6.jar包中。

静态页面目录:../META-INF/resources/doc.html

访问可用地址:

Local-API: http://127.0.0.1:8081/doc.html

External-API: http://192.168.19.1:8081/doc.html

11.2静态页面加载类

配置类:com.wugui.datax.admin.config.ServiceModelToSwagger2MapperImpl

配置类:com.wugui.datax.admin.config.SwaggerConfig

11.3DataX Web Api文档首页

访问文档页面,可以查看API文档信息。

以上,感谢。

2023年2月9日

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值