您可以选择使用自建RDS MySQL或阿里云RDS MySQL,作为E-MapReduce(简称 EMR)中DataLake集群、Custom集群或Hadoop集群类型的元数据存储服务。
前提条件
已创建RDS MySQL实例。
本文以购买阿里云RDS MySQL实例为例,详情请参见创建RDS MySQL实例。
注意事项
请确保待创建EMR集群与已有RDS MySQL实例之间的网络互通。
如果您使用的是阿里云的RDS MySQL实例:
同一VPC:
EMR集群与RDS MySQL实例默认可以通过私网通信,但需要在RDS MySQL实例中设置白名单,将待创建EMR集群的VPC的IPv4网段添加到允许访问的范围中。
白名单设置完成后,即可实现连通。
不同VPC:
如果EMR集群与RDS MySQL实例位于不同的VPC中,您可以通过VPC对等连接等方式打通网络,详情请参见使用VPC对等连接实现VPC私网互通。
网络打通后,仍需在RDS MySQL实例中设置白名单,将待创建EMR集群的VPC的IPv4网段添加到允许访问的范围中。
操作步骤
步骤一:元数据库准备
步骤二:创建集群
在创建集群的软件配置页面,配置以下参数,其他参数的配置请参见创建集群。
DataLake和Custom集群参数 | Hadoop集群参数 | 描述 | |
元数据 | 选择自建RDS。 说明 仅当DataLake和Custom集群选择了HDFS(OSS-HDFS)、YARN和Hive服务后,元数据参数才可见。 | ||
javax.jdo.option.ConnectionURL | RDS链接 | 填写格式为
| |
javax.jdo.option.ConnectionUserName | RDS用户名 | 填写步骤一:元数据库准备中账号的用户名。 | |
javax.jdo.option.ConnectionPassword | RDS密码 | 填写步骤一:元数据库准备中账号的密码。 |
(可选)步骤三:Metastore初始化
如果您创建的是Hadoop集群(EMR-3.38.x及之前版本、EMR-4.9.x及之前版本、EMR-5.4.x以及之前版本),或者创建集群之后需要更换为RDS MySQL数据库,则需要初始化Metastore。
在初始化之前,Hive的Hive MetaStore、HiveServer2和Spark的ThriftServer可能会出现异常,待初始化之后会恢复正常。
DataLake和Custom集群在创建过程中会自动根据所提供的数据库连接参数初始化Hive Meta数据库,因此无需执行该步骤。
使用SSH方式登录集群的Master节点,详情请参见登录集群。
执行以下命令,切换为hadoop用户。
su - hadoop
执行以下命令,进行初始化。
schematool -initSchema -dbType mysql
待初始化成功后,则可以使用RDS MySQL作为Hive的元数据库。