java 解决的是高并发问题,大数据解决的是海量数据存储与分析问题。大数据的各种工具集可以方便我们对海量数据进行存储与分析。
1.了解
可以理解为国内版的Sqoop。 但是比Sqoop要快,Sqoop底层是MR(Map任务),基于磁盘的,DataX基于内存的,所以速度比较快。 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。 DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 关系型数据库的数据都是结构化的,排列非常整齐 非关系型数据库都是非结构化的,非常的错乱。(异构)
2、下载地址
此前已经开源DataX1.0版本,此次介绍为阿里云开源全新版本DataX3.0,有了更多更强大的功能和更好的使用体验。Github主页地址:https://github.com/alibaba/DataX
DataX是阿里云DataWorks数据集成的开源版本。 以下这个是商业版的datax -->Data Integration 阿里云数据集成
3、DataX3.0 框架设计
类似于之前的Flume:
source --> ReadPlugin
channel --> Channel
sink --> WritePlugin
4、支持的数据源有哪些(几乎所有)
5、核心架构
一个Job要想执行,可能会拆分成多个Task任务,这些任务又会分为很多个组,每一个组里面,又根据channel的数量,进行汇总,并行执行,默认一个TaskGroup 有 5个channel 计算题: 假如一个Job,被拆分为100个任务,20 个组,每个组里面并行执行5个任务。 job 100个任务 TaskGroup 假如需要20个并发量 每一个TaskGroup 默认是5个任务
用户提交了一个DataX作业,并且配置了20个并发,目的是将一个100张分表的mysql数据同步到HDFS里面。 DataX的调度决策思路是: 1. DataXJob根据分库分表切分成了100个Task。 2. 根据20个并发,DataX计算共需要分配4个TaskGroup。 3. 4个TaskGroup平分切分好的100个Task,每一个TaskGroup负责以5个并发共计运行25个Task
datax中的数据导入导出,是并行执行的,并且是基于内存的,所以比较快!
6、安装
1、上传 /opt/modules
2、解压 tar -zxvf datax.tar.gz -C /opt/installs
3、修改/etc/profile
配置环境变量:
export DATAX_HOME=/opt/installs/datax
export PATH=$PATH:$DATAX_HOME/bin
source /etc/profile
7、测试一下
Play一下自带的案例:
编辑这个案例:job.json文件
运行一下:
datax.py job.json
假如你运行报错如下:
报错: 配置信息错误,您提供的配置文件[/opt/installs/datax/plugin/reader/._drdsreader/plugin.json]不存在. 请检查您的配置文件
解决方案如下:
rm -rf /opt/installs/datax/plugin/*/._*