ETL基于dataX+dataX-web实现可视化数据同步

文章目录

  • 前言
  • 一、安装Python2.x
  • 二、安装Hadoop3.0.0
  • 三、安装DataX
  • 四、DataX-Web部署启动
  • 五、生产打包部署
  • 六、集群部署
  • 总结


前言

基于阿里开源项目 dataX 和 datax-web 实现可视化数据同步。

基础软件安装

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

以下是本篇文章正文内容,下面案例可供参考

一、安装Python2.x

网上有很多安装文档,此处推荐:https://blog.csdn.net/weixin_43790276/article/details/89439226
安装包:百度网盘 python-2.7.13.amd64.msi 提取码:kue4

二、安装Hadoop3.0.0

  • 因Datax是基于Hadoop开发的,所以还需安装Hadoop
  • 因官网下载速度很慢,工具包已上传至百度网盘 点我下载 提取码:wkgb
  • 安装文档请参考:https://blog.csdn.net/zhouzhiwengang/article/details/88116399

三、安装DataX

1.直接下载DataX工具包:DataX下载地址

下载后解压至本地某个目录,进入bin目录,即可运行同步作业:

$ cd  {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}

自检脚本:    python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

2.配置示例:从stream读取数据并打印到控制台

  • 进入datax / bin目录
  • 创建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
       }
    }
  }
}
  • 启动DataX
$ cd {YOUR_DATAX_DIR_BIN}
$ python datax.py ./stream2stream.json 
  • 同步结束,显示日志如下:
...
2015-12-17 11:20:25.263 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2015-12-17 11:20:15
任务结束时刻                    : 2015-12-17 11:20:25
任务总计耗时                    :                 10s
任务平均流量                    :              205B/s
记录写入速度                    :              5rec/s
读出记录总数                    :                  50
读写失败总数                    :                   0

到此,datax安装完毕

四、DataX-Web部署启动

  1. 下载master分支或者release版本到本地
    GitHub DataX Web下载地址
    码云 DataX Web下载地址
  2. Linux:一键部署
  3. 开发环境部署
    • 执行bin/db下面的datax_web.sql文件(注意老版本更新语句有指定库名)
    • 修改项目配置
      admin模块下的bootstrap.properties文件
      ETL基于dataX+dataX-web实现可视化数据同步_第1张图片
      admin模块下的application.yml文件ETL基于dataX+dataX-web实现可视化数据同步_第2张图片
      executor模块下的application.yml
      ETL基于dataX+dataX-web实现可视化数据同步_第3张图片
  4. 启动项目
    首先启动admin模块下的启动类
    再启动executor模块下的启动类
  5. 启动成功后打开页面(默认管理员用户名:admin 密码:123456) http://localhost:8080/index.html#/dashboard

五、生产打包部署

  1. 修改线上对应数据库信息 maven打包成XX.jar

  2. 如果运行提示无主清单程序
    修改admin模块和executor模块下的pom文件:
    首先注释掉下图部分
    ETL基于dataX+dataX-web实现可视化数据同步_第4张图片
    admin模块新增打包plugin

    	<plugin>
    	    <groupId>org.springframework.boot</groupId>
    	    <artifactId>spring-boot-maven-plugin</artifactId>
    	
    	    <executions>
    	        <execution>
    	            <phase>package</phase>
    	            <goals>
    	                <goal>repackage</goal>
    	            </goals>
    	        </execution>
    	    </executions>
    	    <configuration>
    	        <includeSystemScope>true</includeSystemScope>
    	        <mainClass>com.wugui.datax.admin.DataXAdminApplication</mainClass>
    	    </configuration>
    	</plugin>
    

    executor模块新增打包plugin

    	<plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
    
              <executions>
                  <execution>
                      <phase>package</phase>
                      <goals>
                          <goal>repackage</goal>
                      </goals>
                  </execution>
              </executions>
              <configuration>
                  <includeSystemScope>true</includeSystemScope>
                  <mainClass>com.wugui.datax.executor.DataXExecutorApplication</mainClass>
              </configuration>
          </plugin>
    

    然后使用命令启动jar程序

    admin模块
    java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-admin-2.1.2.jar
    
    executor模块
    java -Xmx1024M -Xms1024M -Xmn448M -XX:MaxMetaspaceSize=192M -XX:MetaspaceSize=192M -jar datax-executor-2.1.2.jar
    

六、集群部署

调度中心、执行器支持集群部署,提升调度系统容灾和可用性。
1.调度中心集群:

DB配置保持一致;
集群机器时钟保持一致(单机集群忽视);

2.执行器集群:

执行器回调地址(admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。

同一个执行器集群内AppName(executor.appname)需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了DataX+DataX-Web的安装以及部署,而DataX-Web的使用需自行探索

推荐
datax-web作者文章:增量的配置方式 https://my.oschina.net/u/4259890/blog/4362748
其他集群部署方式:https://blog.csdn.net/fairynini/article/details/106836238?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control

你可能感兴趣的:(DataX,DataX-Web,java,hadoop,python)