1、直接下载dataX.tar.gz,下载后解压至本地某个目录,进入bin目录,即可运行同步作业。
用datax自带检测脚本开始自检,自测命令:
python datax.py ../job/job.json
2、下载源码后,用maven编译
详见datax安装与使用详解
由于楼主这边需要同步任务很多,这边需要装集群式dataX。即每台机器上都安装。
xshell多窗口执行命令:
1、选择排列方式,好方便同步命令时查看执行情况。
2、点击查看–>撰写–>撰写窗格
至此,即可同时操作多窗口。
选择同时上传解压。
dataX Web
用idea打开后
做一下处理:
1、执行bin/db下面的datax_web.sql文件(注意更新语句有指定库名)
创建datax_web的数据库,如果是部署在linux服务器上,请先给linux安装mysql:
mysql -u用户 -p密码 查看是否有mysql。
没有的安装方式详见:安装mysql
2、修改项目配置
1.修改datax_admin下resources/application.yml文件,
将数据库改成上面你自己的datax_web数据库连接地址+修改日志配置+邮箱配置
2.修改datax_executor下resources/application.yml文件
修改日志路径,修改web(admin)服务的地址+修改executor服务的配置(主要是datax的pypath路径)
3.增加编辑启动类
如截图添加启动类:
com.wugui.datax.admin.DataXAdminApplication
com.wugui.datax.executor.DataXExecutorApplication
maven install
需要部署的就是executor和admin两个jar包而已,但是直接打包这两个是不会成功的:
install admin会出现以下类似报错
Failed to execute goal on project datax-executor: Could not resolve dependencies for project com.wugui:datax-executor:jar:2.1.1: Could not find artifact com.wugui:datax-core:jar:2.1.1 in alimaven (https://maven.aliyun.com/repository/central)
从报错可以看出是是还没有install executor的关系,install executor则会出现没有install其他模块的报错。
最后,打所有包都打好,最后打executor、admin,然后我们只需要将executor、admin的jar包放到服务器上,然后nohup执行:
启动命令demo:nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.1.jar --server.port=8080&
或者直接把修改好的配置的源码项目上传linux:
执行mvn package -Dmaven.test.skip=true
分别将datax-admin、datax-executor模块target下datax-admin-1.0.0.jar、datax-executor-1.0.0.jar放置需要的服务器上
分别启动datax-admin-1.0.0.jar、datax-executor-1.0.0.jar
启动命令demo:
**nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.1.jar --server.port=8080&
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-executor-2.1.1.jar **
运行出现no main manifest attribute, in datax-admin-2.1.2.jar
运行jar包提示没有主清单属性,在pom中加入插件或idea打包中设置即可。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.wugui.datax.admin.DataXAdminApplication</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>true</includeSystemScope>
<mainClass>com.wugui.datax.executor.DataXExecutorApplication</mainClass>
</configuration>
</plugin>
还是先修改代码配置:
假设有1-5号机器要做执行器。
首先1-5号机器都要装datax
然后选择一台做web服务,例如5号机。
那么配置就是:
然后1-5号机上放executor的jar包,执行命令,启动5个datax的执行器:
启动命令demo:
**nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-executor-2.1.1.jar **
然后5号机器还要放上admin的jar包,执行命令,启动dataxweb服务:
启动命令demo:
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.1.jar --server.port=8080&
启动后登陆5号机ip:8080/index.html#
账号 admin
密码 123456
进入执行器管理界面,将看到5台机器的自动注册信息。
没有自动注册成功,手动注册也是可以的,但是一般没有自动注册成功都是有问题的,所以不建议手动注册,注册也是白费。
可以在机器上telnet一下其他机器,如果不成功,那执行任务一定会有问题。
关于telnet:
查看其他博主总结的telnet无法连接方案
这边自己做点小笔记:
1、检查有没有安装telnet:rpm -qa telnet
telnet-0.17-41.e15
【有输出说明已安装,如果没有输出则没有安装,使用yum install telnet进行安装】
2、检查有没有安装telnet-server: rpm -qa telnet-server
telnet-server-0.17-41.el5
【有输出说明已安装,如果没有输出则没有安装,使用yum install telnet-server进行安装】
3、检查有没有安装 xinetd:rpm -qa xinetd
xinetd-2.3.15-14.el7.x86_64
【有输出说明已安装,如果没有输出则没有安装,使用yum install xinetd进行安装】
在/etc/xinetd.d/下创建一个telnet文件:vim telnet
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
之后重新启动xinetd扩展守护进程service xinetd restart
查看xinetd是否启动成功:ps aux | grep xinetd