You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

10 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

datax-web部署方案

datax-web是针对datax开发的一款可视化解决方案可以在web端实现对datax的可视化操作以及相关的任务创建、管理、调度以及日志查看。现在简单介绍一下在linux环境下datax-web相关部署方案。

一、依赖资源

1、dataxdatax-web的核心资源包
2、jdkjdk版本建议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、安装mysql8.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-webdatax-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发布的地址、调度器端口、自身日志位置以及dataxdatax.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 就可以直接访问系统