|
|
# datax-web部署方案
|
|
|
|
|
|
[datax-web](https://github.com/WeiYe-Jing/datax-web)是针对datax开发的一款可视化解决方案,可以在web端实现对datax的可视化操作,以及相关的任务创建、管理、调度以及日志查看。现在简单介绍一下在linux环境下datax-web相关部署方案。
|
|
|
|
|
|
|
|
|
## 一、依赖资源
|
|
|
1、[datax:datax-web的核心资源包](https://github.com/alibaba/DataX)
|
|
|
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部署包](http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz)即可,不需要对源码进行编译
|
|
|
|
|
|
#### 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 就可以直接访问系统
|
|
|
|
|
|
|
|
|
|