全部產品
Search
文件中心

E-MapReduce:常見問題

更新時間:Aug 08, 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(合并後的目標檔案大小)。