DataX和DataX-WEB 安装步骤

发布时间 2023-03-28 22:11:41作者: yang417

一.安装DataX

1. 简介

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQLOracleOceanBaseSqlServerPostgreHDFSHiveADSHBaseTableStore(OTS)MaxCompute(ODPS)HologresDRDS, databend 等各种异构数据源之间高效的数据同步功能。

项目github地址DataX

2.环境依赖

  • Language: Java 8(jdk版本建议1.8.201以上)
  • Python2.7(支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)
  • Environment: MacOS, Windows,Linux
  • MySQL (5.5+) 必选,对应客户端可以选装, Linux服务上若安装mysql的客户端可以通过部署脚本快速初始化数据库
  • JDK (1.8.0_xxx) 必选
  • Maven (3.6.1+) 必选
  • DataX 必选
  • Python (2.x) (支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下) 必选,主要用于调度执行底层DataX的启动脚本,默认的方式是以Java子进程方式执行DataX,用户可以选择以Python方式来做自定义的改造

2.1安装java

yum list java*
yum install -y java-1.8.0-openjdk-devel.x86_64
java -version

输出如下结果,安装成功:

openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b08)
OpenJDK 64-Bit Server VM (build 25.362-b08, mixed mode)

2.2安装maven

wget https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar xvf apache-maven-3.6.3-bin.tar.gz -O /opt/maven
修改环境变量
#maven
MAVEN_HOME=/opt/maven
export PATH=$PATH:$MAVEN_HOME/bin
查看版本信息mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/maven
Java version: 1.8.0_362, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.59.1.el7.x86_64", arch: "amd64", family: "unix"

3.安装data-x

下载data-x解压
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
tar xvf datax.tar.gz
cd datax/bin
删除项目plugin/reader/plugin/writer/目录下面._*开头的文件目录
rm -rf ../plugin/reader/._*
rm -rf ../plugin/writer/._*
编写启动测试文件vim stream2stream.json,内容如下:
{
  "job": {
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "sliceRecordCount": 10,
            "column": [
              {
                "type": "long",
                "value": "10"
              },
              {
                "type": "string",
                "value": "hello,你好,世界-DataX"
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 5
       }
    }
  }
}
启动测试
python datax.py ./stream2stream.json
输出测试结果如下,表示安装成功
2023-03-28 20:05:47.292 [job-0] INFO  JobContainer - DataX jobId [0] completed successfully.
2023-03-28 20:05:47.293 [job-0] INFO  HookInvoker - No hook invoked, because base dir not exists or is a file: /opt/datax/hook
2023-03-28 20:05:47.294 [job-0] INFO  JobContainer - 
	 [total cpu info] => 
		averageCpu                     | maxDeltaCpu                    | minDeltaCpu                    
		-1.00%                         | -1.00%                         | -1.00%
                        

	 [total gc info] => 
		 NAME                 | totalGCCount       | maxDeltaGCCount    | minDeltaGCCount    | totalGCTime        | maxDeltaGCTime     | minDeltaGCTime     
		 PS MarkSweep         | 0                  | 0                  | 0                  | 0.000s             | 0.000s             | 0.000s             
		 PS Scavenge          | 0                  | 0                  | 0                  | 0.000s             | 0.000s             | 0.000s             


2023-03-28 20:05:47.294 [job-0] INFO  JobContainer - PerfTrace not enable!
2023-03-28 20:05:47.294 [job-0] INFO  StandAloneJobContainerCommunicator - Total 50 records, 950 bytes | Speed 95B/s, 5 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.000s |  All Task WaitReaderTime 0.000s | Percentage 100.00%
2023-03-28 20:05:47.295 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2023-03-28 20:05:37
任务结束时刻                    : 2023-03-28 20:05:47
任务总计耗时                    :                 10s
任务平均流量                    :               95B/s
记录写入速度                    :              5rec/s
读出记录总数                    :                  50
读写失败总数                    :                   0

二.安装DataX-Web

1. 简介

DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMSHive、HBaseClickHouseMongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。
任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。
项目github地址DataX-Web

2.安装

安装详细文档

下载源码文件
git clone https://hub.fgit.gq/WeiYe-Jing/datax-web.git
cd datax-web/
编译打包
mvn clean install
build目录下面生成打包后的文件,build/datax-web-2.1.2.tar.gz,在选定的安装目录,解压安装包
tar xvf datax-web-2.1.2.tar.gz
进入解压后的目录,找到bin目录下面的install.sh文件,跳过确认过程,则执行以下命令安装
cd datax-web/
./bin/install.sh --force
创建数据库create database dataxweb;,目录下/bin/db/datax-web.sql脚本去手动执行
修改数据库配置vim modules/datax-admin/conf/bootstrap.properties
#Database
#DB_HOST=
#DB_PORT=
#DB_USERNAME=
#DB_PASSWORD=
#DB_DATABASE=

三.启动datax-web服务

一键启动所有服务
./bin/start-all.sh
一键取消所有服务
./bin/stop-all.sh
在Linux环境下使用JPS命令,查看是否出现DataXAdminApplication和DataXExecutorApplication进程,如果存在这表示项目运行成功
24982 DataXExecutorApplication
24718 DataXAdminApplication
查看netstat -tnl服务启动的端口
tcp6       0      0 :::9527                 :::*                    LISTEN     
tcp6       0      0 :::9504                 :::*                    LISTEN 
部署完成后,在浏览器中输入 http://ip:port/index.html 就可以访问对应的主界面(ip为datax-admin部署所在服务器ip,port为为datax-admin 指定的运行端口)
输入用户名 admin 密码 123456 就可以直接访问系统

image

datax-web API相关内容可以访问网址: http://ip:port/doc.html

image