一、DataX-Web 介绍
1.1 DataX-Web 是什么
项目地址:https://github.com/WeiYe-Jing/datax-web
** datax-web **是一个在 DataX 之上开发的分布式数据同步工具,提供简单易用的操作界面,降低用户使用 DataX 的学习成本,缩短任务配置时间,避免配置过程中出错。用户可以通过页面选择数据源,即可创建数据同步任务。支持 RDBMS、Hive、HBase、ClickHouse、MongoDB 等数据源。RDBMS 数据源可以批量创建数据同步任务,支持实时查看数据同步进度及日志,并提供终止同步功能,集成并二次开发 xxl-job,可根据时间、自增主键增量同步数据。
任务“执行器”支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU、内存、负载的监控等等。
1.2 DataX-Web 架构
二、DataX-Web 安装部署
2.1 环境要求
环境要求操作系统mac、Windows、LinuxJavaJava8,jdk 的版本建议在 1.8.201 以上Python
Python (2.x) (支持 Python3 需要修改替换 datax/bin 下面的三个 python 文件,替换文件在doc/datax-web/datax-python3 下) 必选,主要用于调度执行底层 DataX 的启动脚本,默认的方式是以 Java 子进程方式执行 DataX,用户可以选择以 Python 方式来做自定义的改造
MySQLMySQL 5.7+MavenApache Maven 3.6.1+,编译安装包需要(可选)DataXDataX 3
对应的基础环境可以查看这篇文章安装:大数据 DataX 详细安装教程-CSDN博客
2.2 安装
直接将安装包下载下来(下载地址:https://pan.baidu.com/s/13yoqhGpD00I82K4lOYtQhg,提取码:cpsk),解压安装到指定的路径即可:
(base) [root@hadoop03 ~]# ls
datax-web-2.1.2.tar.gz
(base) [root@hadoop03 ~]# tar -zxvf datax-web-2.1.2.tar.gz -C /usr/local/
2.3 部署
执行一键安装脚本,进入解压后的目录,找到 bin 目录下面的 install.sh 文件,如果选择交互式的安装,则直接执行:
(base) [root@hadoop03 ~]# cd /usr/local/datax-web-2.1.2/
(base) [root@hadoop03 /usr/local/datax-web-2.1.2]# ./bin/install.sh
在交互模式下,对各个模块的 package 压缩包的解压以及 configure 配置脚本的调用,都会请求用户确认,可根据提示查看是否安装成功,如果没有安装成功,可以重复尝试; 如果不想使用交互模式,跳过确认过程,则执行以下命令安装:
./bin/install.sh --force
2.4 数据库初始化
如果你的本地服务上安装有 mysql 命令,在执行安装脚本的过程中则会出现以下提醒:
Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [{INSTALL_PATH}/bin/db/datax-web.sql]? (Y/N)y
Please input the db host(default: 127.0.0.1):
Please input the db port(default: 3306):
Please input the db username(default: root):
Please input the db password(default: ):
Please input the db name(default: exchangis)
按照提示输入数据库地址,端口号,用户名,密码以及数据库名称,大部分情况下即可快速完成初始化。 如果本地服务上并没有安装 mysql 命令(我这台服务器没有安装 mysql),则可以取用目录下 /bin/db/datax-web.sql脚本去手动执行,完成后修改相关配置文件:
(base) [root@hadoop03 /usr/local/datax-web-2.1.2]# vim modules/datax-admin/conf/bootstrap.properties
#Database
DB_HOST=192.168.170.136
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=xxx
DB_DATABASE=dataxweb
按照具体情况配置对应的值即可。
2.5 配置
安装完成之后,在项目目录下 /modules/datax-execute/bin/env.properties 指定PYTHON_PATH 的路径(即 DataX 的 python 脚本路径):
(base) [root@hadoop03 /usr/local/datax-web-2.1.2]# vim modules/datax-executor/bin/env.properties
······
## PYTHON脚本执行位置
#PYTHON_PATH=/home/hadoop/install/datax/bin/datax.py
PYTHON_PATH=/usr/local/datax/bin/datax.py
2.6 启动服务
2.6.1 一键启动所有服务
./bin/start-all.sh
中途可能发生部分模块启动失败或者卡住,可以退出重复执行,如果需要改变某一模块服务端口号,则:
vi ./modules/{module_name}/bin/env.properties
找到 SERVER_PORT 配置项,改变它的值即可。 当然也可以单一地启动某一模块服务:
./bin/start.sh -m {module_name}
2.6.2 一键取消所有服务
./bin/stop-all.sh
当然也可以单一地停止某一模块服务:
./bin/stop.sh -m {module_name}
2.7 查看服务(注意!注意!)
在 Linux 环境下使用 JPS 命令,查看是否出现 DataXAdminApplication 和DataXExecutorApplication 进程,如果存在这表示项目运行成功:
如果项目启动失败,请检查启动日志:modules/datax-admin/bin/console.out 或者modules/datax-executor/bin/console.out
Tips: 脚本使用的都是 bash 指令集,如若使用 sh 调用脚本,可能会有未知的错误。
2.8 访问 Web UI
部署完成后,在浏览器中输入 http://ip:port/index.html 就可以访问对应的主界面(ip 为 datax-admin 部署所在服务器 ip,port 为 datax-admin 指定的运行端口 9527),输入用户名 admin 密码 123456 就可以直接访问系统:
如果你登录不进去,显示账号密码错误,可以先去数据库看看是否有 dataxweb 数据库生成,如果没有则需要我们手动把 datax_web.sql 导入 dataxweb 数据库中,先创建 dataxweb 数据库再进入此数据库,最后导入 datax_web.sql 文件 即可:
(base) [root@hadoop03 /usr/local/datax-web-2.1.2/bin/db]# pwd
/usr/local/datax-web-2.1.2/bin/db
(base) [root@hadoop03 /usr/local/datax-web-2.1.2/bin/db]# ls
datax_web.sql
2.9 运行日志
部署完成之后,在 modules/对应的项目/data/applogs 下(用户也可以自己指定日志,修改application.yml 中的 logpath 地址即可),用户可以根据此日志跟踪项目实际启动情况
如果执行器启动比 admin 快,执行器会连接失败,日志报"拒绝连接"的错误:
解决办法是是先启动 admin,再启动 executor,30 秒之后会重连,如果成功请忽略这个异常。
(base) [root@hadoop03 /usr/local/datax-web-2.1.2/bin]# ./start.sh -m datax-admin
# 30s 后再启动
(base) [root@hadoop03 /usr/local/datax-web-2.1.2/bin]# ./start.sh -m datax-executor
三、DataX-Web 任务部署
3.1 创建项目
3.2 执行器管理
在这里会列举所有在线的 Executor 列表:
3.3 创建数据源
3.3.1 mysql 数据源
3.3.2 hive 数据源
datax-web 是通过 ThriftServer 连接到 Hive 的。因此需要保证 Hive 的
hiveserver2
服务是开启的状态。
3.4 创建任务模板
3.5 任务创建
3.5.1 构建 reader
3.5.2 构建 writer
3.5.3 设置字段映射
3.5.4 构建
四、DataX-Web 任务管理
版权归原作者 Stars.Sky 所有, 如有侵权,请联系我们删除。