You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Ranger插件的EMR中Spark使用Glue Catalog问题咨询

问题解答

关于Ranger插件与Glue Catalog选项的兼容性

配置Ranger插件的EMR集群时,无法启用“使用AWS Glue Data Catalog作为Spark的外部Hive元存储”选项。原因是Ranger Spark插件依赖EMR内置的Hive Metastore实现权限拦截,若启用Glue作为外部元存储会替换掉内置Hive Metastore,导致Ranger无法正常管控Spark的元数据请求。即使创建集群时手动勾选该选项,实际也不会生效。

让Spark检索Glue Catalog的解决方案

要在保留Ranger权限控制的前提下让Spark访问Glue Catalog,需手动配置双Catalog模式,步骤如下:

1. 修改Spark配置文件

编辑集群的spark-defaults.conf,添加以下配置项,将Glue Catalog注册为Spark的额外catalog:

spark.sql.catalog.glue_catalog=org.apache.spark.sql.hive.HiveCatalog
spark.sql.catalog.glue_catalog.spark.sql.hive.metastore.version=3.1.2
spark.sql.catalog.glue_catalog.spark.sql.hive.metastore.jars=builtin
spark.sql.catalog.glue_catalog.spark.sql.hive.metastore.sharedPrefixes=com.amazonaws,org.apache.hadoop
spark.sql.catalog.glue_catalog.spark.hadoop.hive.metastore.client.factory.class=com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory

2. 配置Ranger权限规则

登录Ranger Admin控制台,找到对应Spark服务的策略,添加针对Glue Catalog的权限规则:

  • 针对数据库:资源类型选database,资源路径填glue_catalog.*,为目标用户/组授予SELECT权限
  • 针对表:资源类型选table,资源路径填glue_catalog.*.*,授予相应的查询/修改权限

3. 在Spark中访问Glue Catalog

  • 临时访问:在Spark SQL中指定catalog查询,示例命令:
    SHOW DATABASES IN glue_catalog;
    USE glue_catalog.your_database;
    SHOW TABLES;
    
  • 设置默认catalog:若希望默认访问Glue Catalog,在spark-defaults.conf中添加:
    spark.sql.defaultCatalog=glue_catalog
    
    之后执行show databases会直接返回Glue中的数据库列表。

注意事项

  • 确保EMR集群的IAM角色拥有Glue Data Catalog的访问权限,需包含glue:GetDatabase、glue:GetTable等核心操作权限
  • 修改配置后需重启Spark相关服务(如Spark Thrift Server、Livy),确保配置生效

内容的提问来源于stack exchange,提问作者spaaaaark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 02:09:13