如何编写分布式的数据传输
一、原理
根据前面介绍的datax原理,数据传输主要包括两部分:1)切分task;2)task调度执行
二、如何切分task
根据不同的数据源可以有不同的切分方式(目标端进行适配),几种常见的切分方式 1)mysql:如果是分库分表,可以按照单表切分成一个task;如果是单表,可以根据主键的区间值切分(参考datax的splitKey) 2)hbase:根据region的rowkey进行切分 3)文件:一个文件一个task,如果单文件可以切分(如orc文件),可以一个文件多个task 4)kafka:可以按照partition进行切分 5)其他的可以参考datax里面的reader插件
三、如何进行task调度执行
在datax里面,task的调度分成了两级,首先将task分配到不同的taskGroup,然后每个taskGroup里面有5个不同的线程去消费task,这种分配策略和分布式调度策略有相似之处。以Yarn为例,分配一个AM作为调度节点,每个container作为执行节点即可将datax移植到分布式的执行引擎上面,具体设计可以参考下图
四、上述实现方式即可以是mapreduce,也可以是spark,或者自己实现一个Yarn Application,我本人是使用mr实现上述设计
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hadoop大数据平台实战(04):Ubuntu 18.04实战安装Spark大数据引擎并统计字符
Spark是一个开源的高性能大数据分析引擎,在Hadoop生态系统中非常的重要组成部分,主要的作用就是分析处理大数据,Spark在大数据生态中的作用是替代之前的mapreduce引擎。Spark的性能测试表名将大数据分析处理的性能提高了100倍。Apache Spark使用最先进的DAG调度程序,查询优化器和物理执行引擎,实现批处理和流数据的高性能分析处理。Spark可以使用Java,Scala,Python,R和SQL快速编写大数据应用程序。Spark提供80多个高级操作符,可以轻松构建并行应用程序。这也是我们为什么要学习Spark的原因。1、大数据分析引擎Spark介绍Apache Spark是高性能开源大数据分析引擎。 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎。 它还支持一组丰
- 下一篇
Java技术周刊第3期:Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase
【点击订阅Java技术周刊】 Java的开发者们: 云栖社区已有5000位Java开发者,发布了30000+Java文章(文章列表),沉淀了7000+的Java精品问答(问答列表)。 Java技术周刊将会为大家介绍最新的Java技术与动态、预告活动、最热问答、直播教程等,欢迎大家订阅Java技术周刊和关注Java社区公众号。 最新动态 Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBaseHBase 是在 Hadoop 分布式文件系统(简称:HDFS)之上的分布式面向列的数据库。而且是 2007 最初原型,历史悠久。 那追根究底,Hadoop 是什么?Hadoop是一个分布式环境存储并处理大数据。本文介绍通过 spring-boot-starter-hbase 集成 HBase。 Spri
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路