本文介绍如何配置独立的阿里云RDS,作为E-MapReduce(简称EMR)集群的元数据。

前提条件

已购买RDS,详情请参见创建RDS MySQL实例
说明 建议类型选择MySQL的5.7;系列选择高可用版

元数据库准备

  1. 创建hivemeta的数据库。
    详情请参见创建数据库和账号中的创建数据库。create_database
  2. 创建用户并授权读写权限。
    详情请参见创建数据库和账号中的创建普通账号。create_user

    请记录创建账号的用户名和密码,创建集群会用到。

  3. 获取数据库内网地址。
    1. 设置白名单,详情请参见设置白名单
    2. 在实例详细页面,单击左侧导航栏中的数据库连接
    3. 数据库连接页面,单击内网地址进行复制。
      net_inter

      请记录内网地址,创建集群时会用到。

创建集群

在创建集群的基础配置页面,配置以下参数,其他参数的配置请参见创建集群

create_cluster
参数 描述
集群名称 集群的名字,长度限制为1~64个字符,仅可使用中文、字母、数字、中划线(-)和下划线(_)。
元数据选择 选择独立RDS
数据库链接 数据库连接填写格式为jdbc:mysql://rm-xxxxxx.mysql.rds.aliyuncs.com/<数据库名称>?createDatabaseIfNotExist=true&characterEncoding=UTF-8
数据库用户名 填写元数据库准备中账号的用户名。
数据库密码 填写元数据库准备中账号的密码。

Metastore初始化

  1. 登录阿里云E-MapReduce控制台
  2. 在顶部菜单栏处,选择地域(Region)。根据实际情况选择资源组,默认显示账号全部资源。
  3. 单击上方的集群管理页签。
  4. 集群管理页面,单击相应集群所在行的详情
  5. 集群基础信息页面的软件信息区域,检查Hive的版本,并进行初始化。
    • 如果Hive是2.3.5版本,请执行以下命令进行初始化。

      使用ssh方式登录集群的Master节点,执行以下命令。

      1. 进入如下目录。
        cd /usr/lib/hive-current/scripts/metastore/upgrade/mysql/
      2. 登录MySQL数据库。
        mysql -h {RDS数据库内网或外网地址} -u{RDS用户名} -p{RDS密码}
      3. 在MySQL命令行中执行以下命令。
        use {RDS数据库名称};
        source /usr/lib/hive-current/scripts/metastore/upgrade/mysql/hive-schema-2.3.0.mysql.sql;
      说明 其中{RDS用户名}元数据库准备中账号的用户名;{RDS密码}元数据库准备中账号的密码;{RDS数据库名称}元数据库准备中设置的数据库名称。
    • 其他版本时,推荐执行以下命令进行初始化。

      使用ssh方式登录集群的Master节点,执行以下命令。

      su hadoop
      schematool -initSchema -dbType mysql
    待初始化成功后,就可以使用自建的RDS作为hive的元数据库。
    说明 在初始化之前,hive的Hive MetaStore、HiveServer2和Spark的ThriftServer可能会出现异常,待初始化之后会恢复正常。
    若初始化时提示异常信息,请检查RDS MySQL安全组配置,确认RDS对EMR集群开通安全组白名单。initialize_fail