DataX
-----单机单线程
将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。
1.框架
2.核心模块
-
DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。
-
DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
-
切分多个Task之后,DataX Job会调用Scheduler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。
-
每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务同步工作。
-
DataX作业运行起来之后, Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job成功退出。否则,异常退出,进程退出值非0。
3.大数据技术框架
-
数据采集
-
数据传输
-
数据存储
-
数据分析与计算
-
数据结果存储和展示
4.DW层
===========================================================
5.mysql和hdfs
1)mysql2hdfs 2)增量数据同步
3)hdfs2mysql
4)压缩
5)
7)从多个url读,但只能到一个里面写
6.优化
1)关键参数
2)提升单个 Channel 的速度
3)提升 Job 的 Channel 并发数
a.配置全局 Byte 限速以及单 Channel Byte 限速(建议)
b.配置全局 Record 限速以及单 Channel Record 限速
c.直接配置 Channel 个数
d.Channel 数目的确定
4)根据情况设置 splitPk(指定了如何根据主键值来划分这些区间。)
5)增加 JVM 堆内存