本文介绍在同一VPC下创建的E-MapReduce集群和RDS MySQL实例,如何通过E-MapReduce集群的Presto查询RDS MySQL数据库信息。

前提条件

  • 已创建集群,并且选择了Presto服务。详情请参见创建集群
  • 已购买RDS,详情请参见创建RDS MySQL实例
    说明 本文以RDS为例介绍。建议 类型选择 MySQL的5.7; 系列选择 高可用版

背景信息

Presto的相关概念,请参见 基本概念

步骤一:配置Connector

  1. 进入Presto服务。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏,选择集群服务 > Presto
  2. 添加Connector信息。
    1. 在Presto页面,单击配置
    2. 服务配置区域,单击connector1.properties页签。
      如果您需要连接多个RDS MySQL数据库时,可以配置多个 connector.properties.
    3. 修改connector.namemysql
    4. 单击右上角的自定义配置
    5. 新增配置项对话框中,配置如下参数。
      配置项 描述
      connection-user 数据库的用户名。本文示例是hiveuser。
      connection-password 数据库的密码。
      connection-url 数据连接字符串,详情请​参见查看或修改内外网地址和端口

      例如jdbc:mysql://rm-2ze5ipacsu8265qxxxxxxxx.mysql.rds.aliyuncs.com:3306

  3. 保存配置。
    1. 单击右上角的保存
    2. 确认修改对话框中,输入执行原因,开启自动更新配置
    3. 单击确定
  4. 重启服务使配置生效。
    1. 选择右上角的操作 > 重启All Components
    2. 执行集群操作对话框中,输入执行原因
    3. 单击确定
    4. 确认对话框中,单击确定

步骤二:查看RDS的数据库

  1. 通过SSH方式连接集群。
    详情请参见 使用SSH连接主节点
  2. 执行如下命令,连接Presto客户端。
    presto --server emr-header-1:9090 --catalog hive --schema default --user hadoop
    返回如下信息,表示Presto连接成功。
    presto:default>
  3. 执行如下命令,查看connector1.properties下的Schema。
    show schemas from connector1;
    说明 connector1是您在 步骤一:配置Connector中配置的properties的名称。
    返回如下类似信息。
          Schema
    --------------------
     emruser
     information_schema
     performance_schema
     sys
    (4 rows)

步骤三:查询表数据

说明 本文示例中的 hive.default.tbl_department是您在Hive上创建的表, connector1.emruser.tbl_employee是您在MySQL上创建的表。
  • 查询emruser.tbl_employee表的数据。
    select * from connector1.emruser.tbl_employee;
    返回类似如下表数据。
     id |    name    | dept_id | salary
    ----+------------+---------+---------
      1 | Ming Li    |       1 | 10000.0
      2 | Eric Cai   |       1 | 11000.0
      3 | Bonnie Liu |       2 | 11000.0
    (3 rows)                       
  • 查询tbl_department表的数据。
    select * from hive.default.tbl_department;
    返回类似如下表数据。
    dept_id | dept_name
    --------+----------
          1 | IT
          2 | Finance
    (2 rows)
  • 交叉查询表数据。
    执行如下命令,交叉查询表 default.tbl_departmentemruser.tbl_employee的数据。
    select * from hive.default.tbl_department a, connector1.emruser.tbl_employee b where a.dept_id = b.dept_id;
    返回结果信息如下表所示。
    dept_id |dept_name | id |    name    | dept_id | salary
    --------+----------+----+------------+---------+---------
          2 | Finance  |  3 | Bonnie Liu |       2 | 11000.0
          1 | IT       |  2 | Eric Cai   |       1 | 11000.0
          1 | IT       |  1 | Ming Li    |       1 | 10000.0
    (3 rows)