10 KiB
datax-web部署方案
datax-web是针对datax开发的一款可视化解决方案,可以在web端实现对datax的可视化操作,以及相关的任务创建、管理、调度以及日志查看。现在简单介绍一下在linux环境下datax-web相关部署方案。
一、依赖资源
1、datax:datax-web的核心资源包
2、jdk(jdk版本建议1.8.201以上)
3、Maven(编译工具)
4、python (推荐python 2.7, python 3需要修改datax相关配置)
5、tomcat (可不装)
6、mysql 5.7 或者8 (用于存放datax-web相关用户信息以及任务信息)
二、安装方案
由于datax 以及data-web均需要依赖于java以及python环境,为了保障后续测试以及系统稳定运行,我们先安装java等相关环境。如果相关环境已经搭建好,可以直接查看第七节,datax-web部署的相关内容。
1.安装java
1.1、查找java相关的列表
yum -y list java*
yum search jdk
1.2、安装jdk
yum install java-1.8.0-openjdk.x86_64
1.3、完成安装后验证
java -version
1.4、通过yum安装的默认路径为:/usr/lib/jvm
1.5、将jdk的安装路径加入到JAVA_HOME,添加环境变量
vi /etc/profile
在文件最后加入:
#set java environment
JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
修改/etc/profile之后让其生效
. /etc/profile
(注意 . 之后应有一个空格)
2、安装tomcat
jar包需要承载在tomcat中运行,不知道为啥,直接用java运行jar包会报错,先暂且装上tomcat吧
2.1、安装
yum -y install tomcat
2.2、查看状态
systemctl status tomcat
2.3、启动tomcat:
systemctl start tomcat
开机自启动的后面再配置
3、安装mysql(8.0)
3.1安装前先更新系统所有包
sudo yum update
(感觉不更新也没事,还好服务器网速快,几下就更新完了)
3.2添加 Yum 包
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
或者
wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
3.3 安装发行包
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
3.4 安装社区版server
sudo yum -y install mysql-community-server
3.5 启动守护进程
sudo systemctl start mysqld
3.6 查看状态
sudo systemctl status mysqld
3.7查看版本
mysql -V
3.8 修改密码
MySQL 安装过程中会为 root 用户生成一个临时密码,保存在 /var/log/mysqld.log 中。通过以下命令查看:
sudo grep 'temporary password' /var/log/mysqld.log
进入 MySQL 客户端修改:
mysql -u root -p
输入以上文件查看的密码,进入mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your passowrd';
ALTER USER 'root'@ IDENTIFIED BY 'your passowrd';
记住一定要加 ; ,否则Mysql无法运行
密码强度要求是:不少于12字符,必须包含大写字母、小写字母、数字和特殊字符。
3.9 配置远程访问
mysql配置好后,无法远程访问,需要进行相关配置
登录mysql后进行相关更改,将原有本地(localhost)访问权限修改为*
mysql -u root -p;
use mysql;
select host, user, authentication_string, plugin from user;
GRANT ALL ON *.* TO 'root'@'%';
update user set host = '%' where user = 'root';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
按CTRL+D 退出mysql编辑模式
3.10 防火墙相关配置
此步骤完成后,可以使用Navicat对mysql进行测试。如果无法连接,可以检查防火墙的情况,查看是否开启了相关端口。
systemctl status firewalld
firewall-cmd --query-port=3306/tcp
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=3306/tcp
如果数据库工具可以连接,说明mysql已经配置完成。
4 python 安装
linux中自带python 版本,可以直接进行查看 输入
python
直接查看结果,如果没有,再自己安装
5 datax安装
5.1 下载
直接到github下载datax部署包即可,不需要对源码进行编译
5.2 解压
安装后对文件进行解压 一般将文件放到usr/local/src/ 文件夹下
cd /usr/local/src
tar -zxvf datax.tar.gz
chmod 755 datax
cd datax
5.3 测试
测试datax是否安装好
python /usr/local/src/datax/bin/datax.py /usr/local/src/datax/job/job.json
通过查看控制台结果,可以判断是否安装成功
5.4 环境变量配置(非必须)
vi /etc/profile
在文件最后加入:
#set datax environment
DATAX_HOME=/usr/local/src/datax
PATH=$PATH:$DATAX_HOME/bin
export DATAX_HOME PATH
修改/etc/profile之后让其生效
. /etc/profile
此处配置完成后,后续配置datax-web后可以免去配置一些项目,如果不配环境变量,系统会默认读取/datax-executor/src/main/resources/application.yml文件下的logpath、jsonpath、pypath。如果配置了环境变量,上面三个path可以忽略,系统会优先使用环境变量。
6 maven
安装maven是为了编译data-web,datax-web其中的配置文件需要根据环境进项更改,编译成对应的jar包,因此需要安装maven进行编译
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y maven
mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/share/apache-maven
Java version: 1.7.0_79, vendor: Oracle Corporation
Java home: /usr/java/jdk1.7.0_79/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-642.15.1.el6.x86_64", arch: "amd64", family: "unix"
7 部署 datax-web
7.1 下载
到github上下载datax-web
git clone https://github.com/WeiYe-Jing/datax-web.git
没有安装git的话可以直接下载zip,并进行解压
7.2 数据库构建
在datax-web文件夹中,找到 doc/db/datax_web.sql 文件,用navicat等软件连接mysql数据库后,新建datax_web数据库,然后执行数据库脚本。
(注意不要执行其他sql脚本,并且执行完成后检查执行结,目前版本有12张表,部分表因mysql版本问题可能执行不成功,要找出来及时处理,本次使用mysql8.0。可以执行成功,使用mysql5.7版本,时间字段创建报错导致失败)
7.3 配置更改
datax-web 中比较核心的就是datax-admin(负责UI界面以及接口层)组件以及datax-executor组件(datax调度器)。 datax-admin中需要配置数据库相关信息 datax-executor需要配置 datax-admin发布的地址、调度器端口、自身日志位置以及datax(datax.py文件位置) datax-executor配置datax-admin的端口以及地址并且执行启动后,会自动在data-admin中注册执行器
datax-admin 修改文件位置 /datax-admin/src/main/resources/application.yml
datasource:
username: root
password: your password
url: jdbc:mysql://ip:port/datax_web?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8
driver-class-name: com.mysql.jdbc.Driver
datax-executor 修改文件位置 /datax-executor/src/main/resources/application.yml
datax:
job:
admin:
### datax-web admin address datax-admin发布后的端口以及地址,此处一定要跟实际相符
addresses: http://ip:port
executor:
appname: datax-executor
ip:
### 此处端口为执行器端口
port: 5555
### job log path (此处是datax-web执行器自身日志存储位置)
logpath: /usr/local/src/dataxweb/logs
### job log retention days
logretentiondays: 30
### job, access token
accessToken:
executor:
### 临时文件json保存位置
jsonpath: /usr/local/src/dataxweb/json/
#datax自身的 data.py的保存位置,此处一定要配置正确
pypath: /usr/local/src/datax/bin/datax.py
如果不配DATAX_HOME 环境变量,系统会默认读取/datax-executor/src/main/resources/application.yml文件下的logpath、jsonpath、pypath。如果配置了环境变量,上面三个path可以忽略,系统会优先使用环境变量。
7.4 编译
datax-web并不是可执行文件,需要编译生成jar包才能运行。可以先进入datax-web 文件夹中,然后运行mvn命令
mvn package -Dmaven.test.skip=true
运行该命令后,会在各自的target文件夹下生成对应的jar包 /datax-admin/target/datax-admin-2.1.1.jar 以及 /datax-executor/target/datax-executor-2.1.1.jar 将以上两个文件拷贝至程序执行文件夹就可以了,本次存放在 /usr/local/src/dataxweb文件夹下
7.5 执行
jar包需要用命令启用以后才能执行,此次选用nohup命令,保障程序可以在后台运行,即使关闭控制台后,程序依然可以安全运行。
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.1.jar --server.port=9999&
nohup java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-executor-2.1.1.jar --server.port=6888&
(此处datax-admin设定的端口需要与datax-executor中配置的admin.addresses端口完全一致,否则会导致执行器无法正确注册,datax-executor的端口可以自行配置,但是不能与datax-executor配置的executor.port重复,否则会发生端口被占用的情况,此处还不是明白为啥一个程序要两个端口)
7.6 运行
部署完成后,在浏览器中输入 http://ip:port/index.html 就可以访问对应的主界面(ip为datax-admin部署所在服务器ip,port为为datax-admin 指定的运行端口)
输入用户名 admin 密码 123456 就可以直接访问系统