如果您的E-MapReduce集群需要和集群之外的数据库同步数据,需要确保网络是联通的。本文就RDS,ecs自搭,云下私有数据库三种情况,分别介绍如何配置网络。
一.RDS
经典网络RDS
想要访问经典网络RDS,EMR(E-MapReduce,下同)最好也指定用经典网络。
经典网络的RDS 可以设置内网地址和外网地址。由于经典网络EMR集群只有master节点可以访问公网,并且sqoop是用map任务同步数据可能在任意节点上运行,所以sqoop任务需要配置连接RDS的内网地址来连接。另外,需要确保EMR集群的内网ip在RDS白名单里。
图1. RDS内网地址
图2. EMR创建集群指定经典网络类型
VPC网络RDS
如果RDS在VPC网络下,EMR集群也需要指定用VPC网络。最好让EMR集群和RDS在同一个vpc网络内,这样可以直接访问RDS地址。如果在不同的vpc网络下,需要通过高速通道打通网络连接。
图3. EMR创建集群指定VPC网络
二. ecs自建数据库
经典网络
访问经典网络的自建数据库跟经典网络的RDS类似,也需要EMR集群指定使用经典网络,访问自建数据库的内网地址。区别是需要将数据库所在的ecs实例和EMR集群的实例放在一个安全组内。可以在ecs控制台-安全组-管理实例将数据库ecs实例添加进EMR集群的安全组里。
图4. 加入安全组
VPC网络
访问VPC网络的自建数据库跟VPC网络的RDS类似,EMR集群指定使用VPC网络。额外要做的是将数据库ecs实例和EMR集群实例放到同一个安全组里
三. 云下私有数据库
有两种方式访问云下私有数据库,一种是绑定弹性IP(EIP)访问数据库的公网地址,一种是将云下数据库通过高速通道和VPC网络互联
绑定EIP
如果云下私有数据库可以通过公网访问,推荐EMR集群使用VPC网络。
创建一个VPC网络的EMR集群,创建成功后在ecs控制台给集群的每个ecs实例绑定一个EIP,就可以访问私有数据库的公网地址了。绑定的操作方式在ecs控制台-ecs实例后的管理-配置信息-更多-里面选择绑定弹性IP.
图5. 绑定弹性IP
高速通道
如果私有数据库不能在公网暴露,可以创建一个VPC网络类型的EMR集群,通过高速通道连接私有IDC和阿里云上的vpc集群。高速通道详情请参见
高速通道产品文档