大美柚与MaxCompute数据同步架构说明
2017/8/10 九戒
本文涉及到的重要概念:
- MaxCompute:简单可以理解为开源的hadoop集群,可提供我们常用的MapReduce和SQL计算模型和数据存储.
- 数加:基于MaxCompute之上封装的便于我们使用和管理MaxCompute的一个壳
- ECS:阿里的云服务器
- tunnelServer:用于和MaxCompute上传下载的数据通道
- Datax:是一个异构数据源离线同步工具,Datax的odps插件底层基于tunnel SDK实现.
- 默认资源:数加提供的用于运行Datax的服务器资源(常用于和MaxCompute之间的数据同步),目前只有在华东2区(上海)有机器
- 自定义资源:我们提供的用于运行Datax的服务器资源,目前我们只有华北2区(北京)2台ECS
- 专线:目前北京机房和北京ECS(华北2区)通专线,简单理解就是北京机房和北京ECS同属一个局域网,让两个机房间的通讯更稳定,快速.
- 端口转发:简单的理解,一个网络端口,转发到另一个网络端口上(我们常用的是:从外网的某个端口转发到内网的某台机器的某个端口,这里是指从ECS的外网端口,转发到北京机房的某台机器的某个端口).
- MaxCompute上传收费:上传不收费
- MaxCompute下载收费:通过公网下载收费,是指MaxCompute到datax这个过程,我们在使用自定义资源的时候需在odps那端(reader)要使用
"tunnelServer": "http://dt-ext.nu16.odps.aliyun-inc.com",
这个配置才能走MaxCompute专线,且不收费,默认是走公网需要收费,这点大家要特别注意一下
敲黑板
在使用自定义资源与MaxCompute做数据同步任务,务必在odps端加上"tunnelServer": "http://dt-ext.nu16.odps.aliyun-inc.com",
配置.免费且能提升同步速度
网络拓扑图
既然数加提供了默认资源为什么我们还要使用自定义资源?
目前默认资源只在华东2区有,而我们大部分的数据和机器在北京,只能通过公网进行数据同步,网络延迟比较大(33ms),且不稳定,经常出现time out情况.且默认资源会限速,而我们需要上传的日志量比较大,数据延迟会比较大,不能很好的满足业务需求.
为什么自定义资源放在华北2区?
因为我们北京机房和华北2区有专线连接,方便与北京机房的机器做数据同步
使用自定义资源给我们带来了什么好处?
- 华北2区的自定义资源可以通过MaxCompute专线(**需要在任务里配置tunnelServer**)连接MaxCompute服务,比通过公网连接更稳定,更快.
- 另一端,自定义资源和北京机房或北京ECS是通过专线或内网连接,网络也比公网更有保障.
总结一下怎么选择资源组
- 如果MaxCompute和华东区的ECS的数据同步,请选用默认资源
- 如果MaxCompute和(华北ECS或者北京机房)的数据同步有两种方式:
- 通过自定义资源(如果操作见下文)
- 通过华北ECS做端口转发:只需将北京机房对应机器的端口(一般是22端口),转发到ECS出口的某个端口(例如21222),然后使用默认资源,使用ECS的外网ip和端口就可以了.
什么时候用自定义资源?什么时候用端口转发?