EMR Serverless Spark支持连接外部Hive Metastore服务,您可以便捷地访问存储在Hive Metastore中的数据。本文将介绍如何在EMR Serverless Spark中配置和连接外部Hive Metastore服务,以便在工作环境中高效管理和利用数据资源。
前提条件
使用限制
使用Hive Metastore需要您重启工作空间中现有的会话。
设置Hive Metastore为默认Catalog后,您的工作流任务将默认依赖于Hive Metastore。
操作流程
步骤一:准备Hive Metastore服务
本文采用EMR on ECS的Hive Metastore作为外部服务,如果您的VPC内已经有Hive Metastore服务,则请忽略该步骤。
步骤二:新增网络连接
进入网络连接页面。
在左侧导航栏,选择
。在Spark页面,单击目标工作空间名称。
在EMR Serverless Spark页面,单击左侧导航栏中的网络连接。
在网络连接页面,单击新增网络连接。
在新增网络连接对话框中,配置以下信息,单击确定。
参数
说明
连接名称
输入新增连接的名称。
专有网络
选择与EMR集群相同的专有网络。
交换机
选择与EMR集群部署在同一专有网络下的相同交换机。
当状态显示为已成功时,表示新增网络连接成功。
步骤三:开放Hive Metastore服务端口
获取已创建网络连接中指定交换机的网段。
您可以登录专有网络管理控制台,在交换机页面获取交换机的网段。
添加安全组规则。
在EMR on ECS页面,单击目标集群的集群ID。
在基础信息页面,单击集群安全组后面的链接。
在安全组页面,单击手动添加,填写端口范围和授权对象,然后单击保存。
参数
说明
端口范围
填写9083端口。
授权对象
填写前一步骤中获取的指定交换机的网段。
重要为防止被外部的用户攻击导致安全问题,授权对象禁止填写为0.0.0.0/0。
步骤四:连接Hive Metastore
在EMR Serverless Spark页面,单击左侧导航栏中的数据目录。
在数据目录页面,单击添加数据目录。
在弹出的对话框中,单击外部Hive Metastore,配置以下信息,单击确定。
参数
说明
网络连接
选择步骤二中新增的网络连接。
Metastore服务地址
Hive MetaStore的URI。格式为
thrift://<Hive metastore的IP地址>:9083
。<Hive metastore的IP地址>
为HMS服务的内网IP地址。本示例为EMR集群Master节点的内网IP,您可以在EMR集群的节点管理页面中查看。
步骤五:使用Hive Metastore
在数据目录页面,单击hive_metastore操作列的设为默认,设置hive_metastore为工作空间的默认数据目录。
重启SQL会话。
如果您的工作空间中已有SQL会话,您需先停止SQL会话,然后再启动SQL会话,以确保hive_metastore生效。
在SQL开发中查询hive_metastore表的数据。
新建SQL开发,详情请参见SQL开发。
执行以下命令,查询hive_metastore中的dw_users表。
SELECT * FROM dw_users;