全部产品
Search
文档中心

开源大数据平台E-MapReduce:常见问题

更新时间:Aug 07, 2026

本文汇总了Ranger使用时的常见问题。

为什么Ranger UserSync无法自动同步Linux/LDAP用户?

  • 问题分析:该问题主要存在于EMR-3.23.0及之前的版本。

  • 解决方法:登录集群的emr-header-1节点,手动修改配置文件/etc/ecm/ranger-usersync-conf/ranger-ugsync-site.xmlranger.usersync.enabled的参数值为true,然后在EMR控制台重启RangerUserSync组件。

如何将Unix用户同步到Ranger UI的Policy中?

在同一个集群中,无法同时将LDAP用户和Unix用户同步到Ranger UI的Policy中。如果您需要将Unix用户同步到Ranger,请根据集群是否部署了OpenLDAP服务,选择以下方法将Unix用户添加到Ranger UI的Policy中。

场景一:集群未部署OpenLDAP

  1. 在EMR的Master节点执行以下命令,添加用户。

    sudo adduser <username>
  2. 在EMR控制台Ranger服务的状态页签的组件列表区域,单击RangerUserSync组件操作列的重启,以同步新用户。

  3. 验证同步结果。

    1. 登录Ranger UI,详情请参见通过控制台访问开源组件Web界面

    2. 选择Settings > Users/Groups/Roles

    3. Users页签中,您可以查看是否有新创建的Unix用户。

      例如,在步骤1中创建了test用户。

场景二:集群已部署OpenLDAP

如果集群中已部署OpenLDAP服务,默认会同步LDAP用户。此时需要手动修改Ranger配置参数以支持Unix用户同步。具体操作步骤如下:

  1. 在EMR的Master节点执行以下命令,添加用户。

    sudo adduser <username>
  2. 在EMR控制台Ranger服务的配置页签,搜索并修改以下参数:

    • ranger.usersync.sync.source:设置参数值为unix

    • ranger.usersync.source.impl.class:设置参数值为org.apache.ranger.unixusersync.process.UnixUserGroupBuilder

  3. 按照控制台提示,保存配置并重启Ranger服务后,即可正常同步Unix用户。

  4. 验证同步结果。

    1. 登录Ranger UI,详情请参见通过控制台访问开源组件Web界面

    2. 选择Settings > Users/Groups/Roles

    3. Users页签中,您可以查看是否有新创建的Unix用户。

      例如,在步骤1中创建了test用户。

EMR 小文件过多导致 Hive on Spark 作业耗时过长如何解决?

当 OSS 上存在大量小文件时,Ranger 对 OSS 的鉴权操作会显著增加耗时,影响 HiveServer2 的执行效率。您可以通过以下任一方案解决该问题。

方案一:关闭 Ranger OSS 鉴权

  1. 登录 EMR 控制台,进入集群详情页。

  2. 集群服务页签中,找到Ranger-plugin服务。

  3. 单击Ranger-plugin服务的状态页签,进入服务概述区域。

  4. 在服务概述区域找到enableOSS开关,将其关闭。

  5. 重启HiveServer2及 Spark ThriftServer等常驻组件。

方案二:优化 Hive 小文件合并参数

在 Hive 服务配置中设置以下参数:

  • hive.merge.mapfiles=true(开启 Map 阶段小文件合并)。

  • hive.merge.mapredfiles=true(开启 Reduce 阶段小文件合并)。

  • hive.merge.size.per.task=256000000(合并后的目标文件大小)。