编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

大数据小白DataX-Web——先跑起来

wxchong 2024-10-23 15:47:53 开源技术 7 ℃ 0 评论

大致看了下大数据用到的技术栈,两个字太多,要快速入门,可谓困难重重,经过一段时间的摸索,先从ETL入手,比较符合传统开发人员转型大数据攻城狮。现在软件行业这么内卷,筒子们转型大数据开发吧。此次介绍的ETL工具很轻量级,入门容易,大厂背书,皮实耐操。

简介

Datax-web基于datax,增加了web界面

Datax运行时依赖python环境,默认通过命令行执行

Datax可以在各种数据源间同步数据,配置文件基于一个json文件,包括reader和writer

Datax-web把Datax基于命令行任务通过java代码串联了起来,并提供了可视化的任务管理

打包或者直接下载安装包

datax下载代码,本地打包

datax-web下载代码,本地打包

datax-admin-dev2.1.3打包之后有问题,MYSQL

前端代码包含在admin模块的static中


部署

依赖于jdk,python,mysql

1 解压设置环境变量:

DATAX_HOME=/home/docker/datax-web/datax

JAVA_HOME=/home/docker/datax-web/jdk1.8.0_201

export JAVA_HOME DATAX_HOME

2 安装datax-web

交互式安装

/home/docker/datax-web/datax-web/bin/install.sh

修改数据库配置:

/home/docker/datax-web/datax-web/modules/datax-admin/conf/ application.yml

3 启动应用

/home/docker/datax-web/datax-web/bin/start-all.sh

包括两个应用:datax-admin, datax-executor

一个控制器,一个执行器

4 查看

Ps –ef|grep datax

查看日志确认真正起来:

Modules/datax-admin/logs

Modules/datax-executor/logs

5 测试

http://13.12.4.15:9527/index.html

admin/123456

数据同步任务

默认支持各种数据库类型的数据源之间传递数据,包括全量和增量,datax适合不太频繁的任务调度,太频繁会有各种问题,注意使用场合!!!

对于ftp,txt等其他数据同步任务,支持直接配置json配置文件的方式启动任务!!

配置项目:

添加数据源:

执行器默认自动注册到调度中心,也可以手动配置:

任务管理,管理各种数据同步任务,包含配置文件:

可以手工执行任务,查看任务运行情况,查看任务日志:

日志管理:

查看详细datax运行日志:

任务构建、任务批量构建

提供了可视化的任务配置功能

Datax任务模板,快速创建任务

运行问题

将重新打包的Datax上传后,使用datax-web重新运行任务时出现了

[AnalysisStatistics.analysisStatisticsLog-53] com.alibaba.datax.common.exception.DataXException: Code:[Framework-03], Description:[DataX引擎配置错误,该问题通常是由于DataX安装错误引起,请联系您的运维解决 .]. - 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数。


datax任务json配置文件中增加配置:

{
    "core": {
        "transport": {
            "channel": {
                "speed": {
                    "record": 100,
                    "byte": 100
                }
            }
        }
    },
    "job": {
        "setting": {
            "speed": {
                "record": 500,
                "byte": 1000,
                "channel": 1
            }
        }
    }
}


任务中必须包含用户名密码,且是加密的,同步通道数和参数必须制定,否则用默认配置,传不动,

{
    "core": {
        "transport": {
            "channel": {
                "speed": {
                    "record": -1,
                    "byte": -1
                }
            }
        }
    },
    "job": {
        "setting": {
            "speed": {
                "channel": 10,
                "byte": -1,
                "batchSize": 10000
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [{
            "reader": {
                "name": "mysqlreader",
                "parameter": {
                    "username": "XcInvCmsnNX7obp3yZt0zw==",
                    "password": "hAOJjyefbF+TTK4UuKzJ8A==",
                    "column": ["`PK_ID`", "`TRADE_ID`"],
                    "splitPk": "",
                    "where": "",
                    "connection": [{
                        "table": ["tf_product"],
                        "jdbcUrl": ["jdbc:mysql://13.12.4.13:18148/kafka?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai"]
                    }]
                }
            },
            "writer": {
                "name": "clickhousewriter",
                "parameter": {
                    "username": "xDbvb+lAxXpZ1LC9kQu/Lw==",
                    "password": "XCYVpFosvZBBWobFzmLWvA==",
                    "column": ["PK_ID", "TRADE_ID"],
                    "preSql": ["truncate table tf_product"],
                    "connection": [{
                        "table": ["tf_product"],
                        "jdbcUrl": "jdbc:clickhouse://13.12.4.15:8123/default"
                    }]
                }
            }
        }]
    }
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表