在e-mapredcue中操纵rds中数据(这里以mysql为例),一般有三种方式,下面分别说明下。
为了实验,笔者创建了一个mysql的示例,创建了一个数据库school,在其中创建一个表student,并导入了一部分的数据。
1、 使用数据集成 把数据导入到oss中(都是页面配置)
进入数据集成的控制平台,创建一个pipeline或者ecs pipeline
在新创建的pipeline中,新建作业。目前没有直接的页视图,可以直接使用json视图
源类型选择mysql,目标类型选择oss,填写一些信息。再立即执行,脚本参考:
2、编写hive脚本
特别如果想登陆到机器上执行hive脚本,一定要 sudo su hadoop到hadoop账户下或者新建一个账号。不要在root下操作。
目前e-mapreduce镜像中没有直接提供sqoop,你可以登陆master机器,sudo su hadoop帐号下,再下载sqoop(master机器是可以访问互联网的)
下载sqoop及mysql-connector-java,目前列出的地址可以访问,如果不能访问,请直接访问官方下载。
执行命令,拷贝数据。sqoop有很多的用法,大家可以看下sqoop官方文档,或者google。
查询下
这一步是需要写一些代码的,在代码中可以直接配置访问mysql。
rds默认是拒绝访问的,所以需要在rds中配置网络白名单。在数据安全性->添加白名单分组。
如果是使用数据集成,则需要配置数据集成的ip地址,如果是使用sqoop或者直接相连,则需要配置e-mapreduce的白名单(这个可以在集群的详情页看到)