datax 安装和框架

Datax 安装

  1. 下载datax:wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
  2. 解压datax: tar –zxf datax.tar.gz
  3. 查看datax 命令 datax.py –help参数和作用如下:

-j或者—jvm 设置jvm参数如堆栈信息等

--jobid  设置jobId 在local和Distribute 模式使用

-m 或者--mode 运行模式包括standalone, local,distribute三种模式(开源版不支持distibute和local)

-p参数设置,通过-p设置参数后可以通过${param}在job中获取

-r 读plugn 如:hdfsReader

-w 写plugn 如:hdfsWriter

Datax 框架

 

DataX 将用户的 job.json 同步作业配置解析成一个 JobDataX 通过 JobContainer 完成全局切分,调用任务,前置和后置的执行,任务的真实执行有taskgroupcontainer控制,jobcontainer就像hadoop的client,taskgroupcontainer就像am,而taskgroup就类似nodemanger,是真实的任务执行。

 

datax的重要组件

jobcontainer

JobContainer: Job执行器,负责Job全局拆分、调度、前置语句和后置语句等工作的工作单元。类似Yarn中的JobTracker

TaskGroupContainer

 TaskGroup执行器,负责执行一组Task的工作单元,类似Yarn中的TaskTrackerYarn中的JobTrackerYarn中的TaskTracker通过RPC进行通讯)

相互关系

  1. TaskGroupContainer向JobContainer上报信息,称JobContainer是TaskGroupContainer的上级;
  2. Task向TaskGroupContainer上报信息,称TaskGroupContainer是Task的上级。

Writer

  包含job和task,job是write 拆分的重要组件,真正的任务的读取是task的

startRead方法

Reader

和writer基本相同

Transformer

中间数据转换的组件,目前提供了5种的数据转换,包括字段截取、替换、补充、过滤和groovy自定义,可以自定义(后面有讲解自定义的方法)

相互关系

datax支持的数据源

除了官方提供的之外,datax还支持常用的olap的写如clickhouse、kudu等,除此之外datax可以很方便的自定义读写。(代码中有clickhouse、kudu的写但是没有测试过)。

datax测试(mysql 和 text的数据交换)

  1. 编写job的json文件相关的参数参考官方文档
{
    "job": {
        "setting": {
            "speed": {
                "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "root",
                        "splitPk": "id",
                        "column": [
"id","task_id","state","file_name"....
                        ],
                        "connection": [
                            {
                                "table": [
                                    "content_file_info"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://mysql-ip:3306/content?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&allowMultiQueries=true&useSSL=false"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "txtfilewriter",
                    "parameter": {
                        "path": "/opt/datax_file",
                        "fileName": "content_file_info",
                        "writeMode": "truncate",
                        "dateFormat": "yyyy-MM-dd HH:mm:ss",
                        "fileFormat": "csv",
                        "fieldDelimiter": "\t",
                        "nullFormat":"\\N"
                    }
                }
            }
        ]
    }
}

2.运行datax  datax.py mysql_text_content_file.json

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值