前言
DataX是阿里巴巴的一款开源ETL工具,但是他是纯代码操作的,并不方便小白使用。有大神基于DataX开发了一款datax-web的开源管理系统,可以通过web端配置自动生成DataX的job.json,且可以管理和监控DataX的调度。本文带领大家一步步安装部署和测试。
依赖服务安装
安装配置centos
由于官方说明需要在Linux上运行,因此首先通过虚拟机安装一个centos系统,我安装的是Minimal版本,安装完成后修改一下网卡配置,使虚拟机启动时自动获取IP:
#查看网卡
ip addr
#进入网卡配置文件目录(可以通过Linux的TAB键进行补全,避免字母输入出错)
cd /etc/sysconfig/network-scripts
#查看文件目录,根据网卡名找到网卡配置文件,编辑网卡配置文件
ll
vi ifcfg-ens33
输入I进入编辑模式,将BOOTPROTO改成dhcp,ONBOOT改成yes,完成后按esc退出编辑模式,然后输入:wq保存并退出。
修改完成后重启系统,使用ping命令测试网络是否可用:
因为要安装许多软件,我们先安装wget用来下载,并把yum安装源改成国内镜像:
#安装wget
yum -y install wget
#进入yum源配置目录
cd /etc/yum.repos.d
#备份源文件
mv CentOS-Base.repo CentOS-Base.repo.bak
#下载阿里源文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
#将阿里源文件更名成所使用的源文件名称
mv Centos-7.repo CentOS-Base.repo
#生成源缓存
yum makecache
#更新yum源
yum -y update
安装MySQL8.0
参考此文 CentOS安装MySQL8.0;
安装JDK1.8
参考此文:centos7通过yum安装JDK1.8
安装Maven3.6.3
参考此文:centos7安装maven教程
首先下载包:
wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/maven-3.6.3-bin.tar.gz
解压到公共资源目录:
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /var/local
配置环境变量
#修改环境变量文件,增加如下图三行
vi /etc/profile
重新加载环境变量,检查mvn版本确认是否配置成功:
#重新加载环境变量
source /etc/profile
#检查版本
mvn -version
安装Git
通过yum直接安装:
yum install -y git
安装DataX
GitHub上DataX文档里面有详细步骤,也可参考此文:开源ETL工具DataX在Windows上安装部署 。
DataX-WEB安装
下载源码打包
DataX-WEB的GitHub地址是: https://github.com/WeiYe-Jing/datax-web ,我们通过git克隆源码下来:
git clone https://github.com/WeiYe-Jing/datax-web.git
下载速度慢的话可以参考此文修改host,linux系统hosts文件在/etc/hosts。
进入根目录打包:
cd
mvn clean install
打包完成会在build目录下生成安装包:
安装配置
创建安装部署的目录,解压安装包到安装部署目录:
tar -zxvf datax-web-2.1.2.tar.gz
执行一键安装脚本install.sh,期间会多次让确认安装信息,并会引导配置数据库连接:
cd datax-web-2.1.2
cd bin
bash install.sh
安装成功后,执行一键启动脚本start_all.sh,成功后检查一下默认的9527端口是否正常服务
bash start-all.sh
#查看服务端口
netstat -lanp|grep 9527
到这一步正常情况下就可以打开浏览器访问 http://ip:port/index.html 进入datax-web管理系统了,如果其他电脑无法访问,需要检查一下防火墙是否开启了对应端口:
#检查防火墙服务
systemctl status firewalld
#检查防火墙状态
firewall-cmd --state
#查看防火墙配置
firewall-cmd --list-all
#添加端口
firewall-cmd --permanent --add-port=9527/tcp
#重新加载防火墙
firewall-cmd --reload
成功访问后的页面如下,默认账号密码admin 123456:
其他(摘自官方GitHub)
配置邮件
在项目目录: /modules/datax-admin/bin/env.properties 配置邮件服务
MAIL_USERNAME=""
MAIL_PASSWORD=""
指定PATHON_PATH路径
在项目目录下/modules/datax-execute/bin/env.properties 指定PYTHON_PATH的路径
vi ./modules/{module_name}/bin/env.properties
### 执行datax的python脚本地址
PYTHON_PATH=
### 保持和datax-admin服务的端口一致;默认是9527,如果没改datax-admin的端口,可以忽略
DATAX_ADMIN_PORT=
修改端口
如果需要改变某一模块服务端口号,则修改以下文件,找到SERVER_PORT配置项,改变它的值即可:
vi ./modules/{module_name}/bin/env.properties
启动单一模块
单一地启动某一模块服务:
./bin/start.sh -m {module_name}
关闭服务
关闭所有:
./bin/stop-all.sh
关闭单一模块服务:
./bin/stop.sh -m {module_name}
查看服务
在Linux环境下使用JPS命令,查看是否出现DataXAdminApplication和DataXExecutorApplication进程,如果存在这表示项目运行成功
如果项目启动失败,请检查启动日志:modules/datax-admin/bin/console.out或者modules/datax-executor/bin/console.out
运行日志
在modules/对应的项目/data/applogs下(用户也可以自己指定日志,修改application.yml 中的logpath地址即可),用户可以根据此日志跟踪项目实际启动情况
如果执行器启动比admin快,执行器会连接失败,日志报”拒绝连接”的错误,一般是先启动admin,再启动executor,30秒之后会重连,如果成功请忽略这个异常。
集群部署
修改modules/datax-executor/conf/application.yml文件下admin.addresses地址。 为了方便单机版部署,项目目前没有将ip部分配置到env.properties,部署多节点时可以将整个地址作为变量配置到env文件。
将官方提供的tar包或者编译打包的tar包上传到服务节点,按照步骤5中介绍的方式单一地启动某一模块服务即可。例如执行器需要部署多个节点,仅需启动执行器项目,执行 ./bin/start.sh -m datax-executor
调度中心、执行器支持集群部署,提升调度系统容灾和可用性。
* 1.调度中心集群:
DB配置保持一致;<br>
集群机器时钟保持一致(单机集群忽视);<br>
* 2.执行器集群:
执行器回调地址(admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。
同一个执行器集群内AppName(executor.appname)需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。