dataX3.0和datax-web部署实践踩坑记录(windows版)

Masker1133 2024-06-14 16:33:03 阅读 91

今年公司需要上一个数据分析项目,在考察了一番(百度一番)之后决定上datax加上datax-web的方式来进行数据调度。

PS:写在前面,主要作用是为了自己以后再次(跳槽)部署而写下的记录。

持续更新中... ...

一、相关环境以及需要下载的配置

1、datax3.0

注意:这里的链接是指向的github的开发文档。下载dataX需要拉到下边的

或者这个链接。

https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

2、jdk(jdk版本建议1.8.201以上)

这个版本我现在使用的是1.8.0.131目前暂时没有发现问题。等后期升级到1.8.0.301

这个是下载地址Java Downloads | Oracle有需要的自取

下载的时候拉到下边

然后点击

就直接下载了。(如果还不会就自己百度吧!)

下载完成之后点击安装然后一路next就可以了

注意如果需要安装在D盘什么的需要操作一下具体的自行百度。

参考文章:java8的下载与安装(网上教程的安装方法)_java8下载-CSDN博客

3、python (推荐python 2.7, python 3需要修改datax相关配置)

下载相对简单:百度找到python官网

然后进入之后

然后向下滑动找到对应的版本(因为dataX限制了使用2.X的版本,不过这个可以后续替换对应的文件来实现使用3.X版本)

或者使用这个链接https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi

下载完成之后点击安装然后在path环境中配置一下

对应的环境变量就好

D:\Python27

4、mysql(本身对于版本的限制是5.7.X)

MySQL :: Download MySQL Community Server

进去之后选择版本、选择、平台、选择系统位数。一系列选择完成之后点击下载msi版本

然后按照规则点就好了。下载完成之后点击安装

拿不准的可以参考这个文章https://www.cnblogs.com/kendoziyu/p/MySQL.html

至此针对于datax和datax-web的环境就已经安装好了

5、其他软件

针对上边环境配置完成之后我们还需要数据库的查询软件

在这儿我个人喜欢使用的是DBever

进去down下来就一路next就行了

二、数据库准备

1、数据库准备以及sql录入,系统表生成。

因为这个项目的数据库使用的是mysql,且它的数据也是存在本地的(理论上也可以存在远端)。所以我们需要将数据库配置一下。在这儿我们的datax-web开发者们在项目里留了对应的数据库文件我们把它拿出来。位置是在他们项目的bin目录下:\datax-web-master\bin\db

先创建一个datax_web的数据库然后

文件拷贝出来放在我们刚才安装的dbever中一行一行执行就可以了。

以上全部执行完成之后我们就得到了这个这个web系统所需要的数据库支持。

三、解压相应的文件

1、datax

再刚才第一步中我们下载了datax的文件以及datax-web的文件。再将datax解压到D盘下。

2、datax-web

解压datax-web文件之后生成一个

文件夹这个文件夹是其项目开发的文件夹。在这个时候我们是不能直接使用的。切记

四、datax-web项目配置

官方原文档:

https://github.com/WeiYe-Jing/datax-web/blob/master/userGuid.md

官方给出的开发环境部署:

https://github.com/WeiYe-Jing/datax-web/files/5082018/datax-web.Debug.pdf

这是官方部署文档参考第三点,在此我进行一些简单说明。

这些地址必须和你本地的地址相对应。

在这些操作完成之后就可以试着在IDEA上边启动项目。(如果不行就去找找两个application文件是否配置错误)

五、windows使用环境部署&踩坑实录

对于这个项目在windows服务器上部署的时候我们需要将项目进行maven打包。并且java -jar

一下。

1、打包

首先基于前四步我们在idea上成功的运行起来了datax-web。那么在这个里边我们需要对项目进行打包

按照上图进行打包。不出意外都可以进行打包

2、CMD启动

然后放到服务器或者对应的机器上CMD然后进行Java-jar执行

如果提示没有主目录清单,

那么需要我们分别在datax-admin和datax-executor下面的pom.xml文件中添加

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>**/*.yml</exclude> <exclude>**/*.properties</exclude> <exclude>**/*.sh</exclude> <exclude>**/*.xml</exclude> </excludes> </configuration></plugin><plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId><!--在这个地方不经要增加依赖并且还要声明版本--> <version>2.3.0.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions></plugin>

因为之前有些模块的打包插件的版本也没有添加是可以正常使用的,但是今天突然不行了,后来发现spring boot 3.0版最近正式发布了,3.0版是基于java 17 的,不指定的话,默认引用最新的导致这种问题的发生,所以大家做的时候,所有模块的打包插件的版本一定要指定一下,避免出现这种问题,当然这个版本号最好在总的pom文件中定义一下,子模块中直接引用就可以了,不用在每个子模块中一一定义了。

添加完成之后重新执行一下上一步打包。

3、启动问题

在此我引用大佬的文章:datax-web在windows环境idea中模块化打包部署操作步骤_datax打包-CSDN博客

3.1、当我们按照上一步将jar包放到系统中的时候执行并且执行生成的datax-admin-2.1.2.jar和datax-executor-2.1.2.jar,结果还是报错。

datax-admin-2.1.2.jar报错如下:

datax-executor-2.1.2.jar报错如下:

发现问题:打包后的datax-admin.2.1.2.jar和datax-executor.2.1.2.jar包缺少配置文件,应把配置文件补充进jar包。

3.2、将datax-admin下的所有配置资源拷贝进datax-admin-2.1.2.jar的相关目录中。具体 如下:

1)将idea中的datax-admin下的classes下的配置文件application.yml、bootstrap.properties、logback.xml拷贝进datax-admin-2.1.2.jar下的BOOT-INF\classes下。

2)将datax-admin下的target/classes/i8n下的message.properties和message_en.properties拷贝进datax-admin-2.1.2.jar下的BOOT-INF\classes\i18n下

3)将将datax-admin下的target/classes/mybatis-mapper下的所有xml文件拷贝进datax-admin-2.1.2.jar下的BOOT-INF\classes\mybatis-mapper下

4)将idea中的datax-executor编译生成后的classes下的配置文件application.yml、logback.xml拷贝进datax-executor-2.1.2.jar下的BOOT-INF\classes下。

5)在此时我们执行cmd就可以成功启动项目,但是因为数据库支持的驱动还没有导入项目所以我们需要将数据库支持的驱动一起导入到项目中。

我们把缺少的3个jar包,补充进datax-admin-2.1.2.jar下的BOOT-INF\lib下。

注意:补充进的时候需要设置不压缩直接存储,否则会报错,不识别压缩的驱动jar包

重新CMD一下然后执行文件就好

六、项目使用

这是大佬的文章

datax和datax_web的搭建与入门使用(windows版本)_datax web-CSDN博客

七、项目使用中的问题点记录

1、MySQL插入中文问题。

按照部署步骤部署好项目之后,开心的启动了项目。首先遇到的第一个问题就是本来想使用本地安装的MySQL来测试一下数据调度。然后马上就出来了一个中文识别的问题。

1.1、解决办法

MySQL对应的url后边增加对应的参数。

?useSSL=false&useUnicode=true&characterEncoding=utf8

这样就可以解决后续生成的中文参数的问题。

为什么要说后续。因为原本的那个生成的任务还是会中文输入错误。

在观看日志之后发现之前生成的Json并没有随着我数据源的更新而更新。

这应该是之前web开发者没有注意到的细节吧。勉强算是一个bug(要什么自行车)

所以更新一下

就可以正常录入了

2、在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数

在默认生成的模板中有对每个通道的速度限制。把速度限制删除掉就可以了。

具体原因是为什么暂时还没有找到。但是再查找文档的时候许多文档都是只写了通道数并没有限制传输速度。

但是将对应的速度限制去掉之后就可以正常使用。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。